在 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中文网其他相关文章!