在Java 中將Epoch 轉換為MySQL 時間戳
Java 程式設計師經常遇到需要轉換EpUnix 以來的秒數紀元,轉換為MySQL 時間戳記格式。以下是如何使用 Java 的現代日期時間 API java.time 來實作此轉換。
java.time
隨 Java SE 8 引入,java.time 提供了一個全面且防錯的日期時間 API。它將ANSI SQL 類型對應到java.time 類型,如下所示:
ANSI SQL | Java SE 8 |
---|---|
DATE | LocalDate |
TIME | LocalTime |
TIMESTAMP | LocalDateTime |
TIME WITH TIMEZONE | OffsetTime |
TIMESTAMP WITH TIMEZONE | OffsetDateTime |
Converting Epoch to MySQL Timestamp
使用java.time,可以輕鬆轉換MySQL時間戳記的紀元時間:
// Get current epoch time in milliseconds long epochNow = System.currentTimeMillis(); // Create a LocalDateTime object from the epoch time LocalDateTime timestampNow = Instant.ofEpochMilli(epochNow).atZone(ZoneId.systemDefault()).toLocalDateTime(); // Convert to MySQL timestamp format using DateTimeFormatter String mySQLtimestamp = timestampNow.format(DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss"));
範例用法
在您提供的程式碼片段中,您有epochNow 表示當前時間,date7daysAgo 表示過去7 天的時間戳。您可以使用上面的程式碼輕鬆地將這兩個時間戳記轉換為 MySQL 格式並將它們儲存在 mySQLtimestamp 中。
String mySQLtimestampNow = LocalDateTime.ofInstant(Instant.ofEpochMilli(epochNow), ZoneId.systemDefault()) .format(DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss")); String mySQLtimestamp7DaysAgo = LocalDateTime.ofInstant(Instant.ofEpochMilli(date7daysAgo), ZoneId.systemDefault()) .format(DateTimeFormatter.ofPattern("yyyy-MM-dd:HH:mm:ss"));
以上是如何在 Java 中將 Epoch 時間轉換為 MySQL 時間戳記?的詳細內容。更多資訊請關注PHP中文網其他相關文章!