1. 简介
纪元时间(又称Unix时间)是一种将日期和时间表示为单个数值的系统,它测量自1970年1月1日00:00:00(协调世界时,UTC)以来经过的毫秒数,纪元时间因其简单易用而被广泛应用于计算机系统和编程语言。
在本教程中,我们将探讨以毫秒为单位的纪元时间到LocalDate和LocalDateTime的转换。
2. 将纪元时间转换为LocalDate
要将纪元时间转换为LocalDate,我们需要将纪元时间(以毫秒为单位)转换为Instant对象。
Instant代表UTC时区时间线上的一个点:
long epochTimeMillis = 1624962431000L; // Example epoch time in milliseconds
Instant instant = Instant.ofEpochMilli(epochTimeMillis);
一旦我们有了Instant对象,就可以通过使用atZone()方法指定时区并提取日期部分将其转换为LocalDate对象:
ZoneId zoneId = ZoneId.systemDefault(); // Use the system default time zone
LocalDate localDate = instant.atZone(zoneId).toLocalDate();
最后,我们可以以人类可读的格式输出转换后的LocalDate对象:
System.out.println(localDate); // Output: 2021-06-29
我们可以使用DateTimeFormatter类的特定模式来格式化日期:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = localDate.format(formatter);
System.out.println(formattedDate); // Output: 2021-06-29
我们可以根据需求选择不同的模式。
以下是该脚本的表示:
long epochTimeMillis = 1624962431000L; // Example epoch time in milliseconds
Instant instant = Instant.ofEpochMilli(epochTimeMillis);
ZoneId zoneId = ZoneId.systemDefault(); // Use the system default time zone
LocalDate localDate = instant.atZone(zoneId).toLocalDate();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
String formattedDate = localDate.format(formatter);
System.out.println(formattedDate); // Output: 2021-06-29
使用这4个步骤,我们可以轻松地将毫秒级的纪元时间转换为LocalDate,甚至可以指定输出的格式。
3. 将纪元时间转换为LocalDateTime
将纪元时间(以毫秒为单位)转换为LocalDateTime的步骤与上面的LocalDate示例类似,唯一的区别是我们需要导入LocalDateTime类。
综上所述,这是转换为LocalDateTime的代码:
long epochTimeMillis = 1624962431000L; // Example epoch time in milliseconds
Instant instant = Instant.ofEpochMilli(epochTimeMillis);
ZoneId zoneId = ZoneId.systemDefault(); // Use the system default time zone
LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = localDateTime.format(formatter);
System.out.println(formattedDateTime); // Output: 2021-06-29 12:13:51
该代码将纪元时间(以毫秒为单位)转换为LocalDateTime,我们可以使用DateTimeFormatter类来格式化日期和时间。
4. 总结
在本文中,我们探讨了将纪元时间(以毫秒为单位)转换为LocalDate和LocalDateTime,这是一个相当简单的过程,我们使用了DateTimeFormatter类将输出转换为特定的日期或时间格式。
Show Disqus Comments
Post Directory
扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章
