在Java 中將紀元時間轉換為MySQL 時間戳
在Java 和MySQL 中處理時間值時,轉換紀元時間,表示自Unix 紀元以來的秒數,可能需要轉換為MySQL 時間戳記格式。
要實作此轉換,需要流行的方法涉及使用 Java 8 java.time API。此 API 提供了一組用於處理日期和時間的現代類別和接口,包括不同格式之間的轉換。
將紀元時間轉換為MySQL 時間戳
以下程式碼片段示範如何使用java.time API 將紀元時間轉換為MySQL 時間戳記:
import java.time.LocalDateTime; // Convert epoch time in milliseconds to seconds long epochSeconds = System.currentTimeMillis() / 1000; // Create a LocalDateTime object from the epoch seconds LocalDateTime timestamp = LocalDateTime.ofEpochSecond(epochSeconds, 0, java.time.ZoneOffset.UTC); // Format the LocalDateTime object as a MySQL timestamp string String mySQLTimestamp = timestamp.toString();
產生的mySQLTimestamp字串的格式為YYYY-MM-DD HH:MM:SS,與 MySQL 時間戳記資料類型相容。
替代方法:SimpleDateFormat
而通常建議使用java.time API 來處理日期和時間,這是使用舊版SimpleDateFormat 轉換紀元時間的另一種方法class :
import java.text.SimpleDateFormat; import java.util.Date; // Convert epoch time in milliseconds to a Date object Date date = new Date(epochSeconds * 1000); // Create a SimpleDateFormat to format the Date as a MySQL timestamp string SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-DD HH:MM:SS"); // Format the Date object as a MySQL timestamp string String mySQLTimestamp = sdf.format(date);
與java.time API相比,由於潛在的線程安全性問題以及不同版本 JDK 之間的不一致,這種方法不太受歡迎。
以上是如何在 Java 中將紀元時間轉換為 MySQL 時間戳記?的詳細內容。更多資訊請關注PHP中文網其他相關文章!