SimpleDateFormatter.parse 輸出格式差異
嘗試使用SimpleDateFormat 將UNIX 時間戳轉換為特定日期格式時,使用者可能會遇到以下日期問題:格式化和解析的輸出。
造成這種差異的一個原因是時區可能不匹配。確保 SimpleDateFormat 的時區與預期輸出相符。此外,請驗證紀元時間戳記是否依照 Date 建構函數的要求以毫秒為單位表示。
建議的解決方案:
為了避免潛在的格式問題並確保資料庫相容性,它建議將日期物件直接傳遞給 MySQL,而不是字串。利用 java.time 類別(例如 LocalDateTime)來表示日期和時間。
這是更新的程式碼片段:
<code class="java">String ep = "a1527069600"; long epoch = Long.parseLong(ep.substring(1)); Instant instant = Instant.ofEpochSecond(epoch); LocalDateTime ldt = instant.atZone(ZoneId.of("Asia/Calcutta")).toLocalDateTime(); PreparedStatement ps = myDatabaseConnection.prepareStatement( "insert into my_table (my_date_time) values (?)"); ps.setObject(1, ldt);</code>
此方法可確保日期根據指定時間進行格式化區域並作為物件儲存在資料庫中,消除了格式錯誤的可能性。
以上是以下是一些標題選項,重點關注核心問題和解決方案: 選項 1(直接且以問題為中心): * 為什麼 SimpleDateFormat.parse 在轉換 UNIX 時間時會產生不一致的輸出的詳細內容。更多資訊請關注PHP中文網其他相關文章!