📜  将 long 转换为 localdatetime java (1)

📅  最后修改于: 2023-12-03 15:09:31.889000             🧑  作者: Mango

如何将 long 转换为 LocalDateTime

在 Java 中,我们有时需要将 long 值转换成 LocalDateTime。 LocalDateTime 是 Java 8 引入的一种日期时间类型,可以用来表示日期和时间,不像 Date 和 Calendar 一样不可变,也不需要考虑时区。

使用 Instant 和 ZoneId

在 Java 8 中,我们可以使用 Instant 类和 ZoneId 类将一个 long 值转换为 LocalDateTimeInstant 是表示时间线上的某个时间点的类。我们可以从 Epoch(1970 年 1 月 1 日,UTC)开始计算,使用指定的时区将 Instant 转换为在地方时区中具有相同日期和时间的 LocalDateTime

long timestamp = 1629927392000L;
Instant instant = Instant.ofEpochMilli(timestamp);
LocalDateTime localDateTime = instant.atZone(ZoneId.systemDefault()).toLocalDateTime();

在上面的代码中,我们使用 Instant.ofEpochMilli 方法将 long 值转换成 Instant 类型。然后,我们使用 Instant 对象的 atZone 方法将 Instant 对象转换为指定时区中的 ZonedDateTime 对象。最后,使用 ZonedDateTime 对象的 toLocalDateTime 方法将其转换为 LocalDateTime 类型。

使用 DateTimeFormatter

我们还可以使用 DateTimeFormatter 类将 long 值转换为 LocalDateTimeDateTimeFormatter 提供了一种将字符串格式化为日期和时间的方法。我们可以使用 DateTimeFormatter 中的 parse 方法来将 long 值转换为 LocalDateTime,如下所示:

long timestamp = 1629927392000L;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
LocalDateTime localDateTime = LocalDateTime.parse(formatter.format(timestamp), formatter);

在上面的代码中,我们使用 DateTimeFormatter 对象的 ofPattern 方法创建日期时间格式化器。然后,我们使用格式化器的 format 方法将 long 值转换成格式化后的字符串。最后,我们使用 DateTimeFormatter 对象的 parse 方法将字符串转换成 LocalDateTime 对象。

总结

在本文中,我们介绍了两种将 long 值转换为 LocalDateTime 类型的方法。我们可以使用 InstantZoneId 类来完成这项工作,也可以使用 DateTimeFormatter 实现相同的效果。这些方法可以帮助我们在 Java 中轻松地将 long 值转换成 LocalDateTime