📅  最后修改于: 2023-12-03 14:52:45.804000             🧑  作者: Mango
在Java中,将纪元时间(Epoch Time)转换为日期可以使用java.time
包中的Instant
和LocalDateTime
类。纪元时间是从Coordinated Universal Time (UTC)的1970年1月1日午夜开始计算的毫秒数。
以下是一个示例代码,演示了如何将纪元时间转换为日期:
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
public class EpochTimeConverter {
public static void main(String[] args) {
// 定义纪元时间
long epochTime = 1621834200000L;
// 使用Instant将纪元时间转换为LocalDateTime
LocalDateTime dateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(epochTime), ZoneOffset.UTC);
// 使用DateTimeFormatter格式化日期
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = dateTime.format(formatter);
// 输出结果
System.out.println(formattedDateTime);
}
}
这个示例程序将纪元时间1621834200000L
(对应于2021年5月24日10时30分0秒)转换为标准的时间格式yyyy-MM-dd HH:mm:ss
并打印输出。
以上代码的解析如下:
java.time.Instant
,java.time.LocalDateTime
,java.time.ZoneOffset
和java.time.format.DateTimeFormatter
类。EpochTimeConverter
类,并在main
方法中定义纪元时间epochTime
。Instant.ofEpochMilli(epochTime)
将纪元时间转换为Instant
对象。LocalDateTime.ofInstant()
方法将Instant
对象转换为LocalDateTime
对象,使用ZoneOffset.UTC
指定时区。DateTimeFormatter
对象,并使用ofPattern()
方法指定日期格式。dateTime.format(formatter)
将LocalDateTime
对象格式化为字符串。System.out.println()
方法打印输出格式化后的日期。这样,你就可以将纪元时间转换为日期并输出了。
请注意,纪元时间通常是以毫秒为单位表示的,需要使用L
后缀来标识为long
类型的字面量。
希望上述示例对你理解如何在Java中将纪元时间转换为日期有所帮助!