如何将long
类型的毫秒数转换为LocalDateTime
?
我有一段旧代码,其中涉及到对日历进行操作,我想将结果毫秒数转换为LocalDateTime。
final Calendar aMinuteAgo = Calendar.getInstance();
aMinuteAgo.add(Calendar.MINUTE, -1);
//Convert aMinuteAgo.getTimeInMillis() to LocalDateTime
如何将long
类型的毫秒数转换为LocalDateTime
?
我有一段旧代码,其中涉及到对日历进行操作,我想将结果毫秒数转换为LocalDateTime。
final Calendar aMinuteAgo = Calendar.getInstance();
aMinuteAgo.add(Calendar.MINUTE, -1);
//Convert aMinuteAgo.getTimeInMillis() to LocalDateTime
LocalDateTime ofInstant = LocalDateTime.ofInstant(aMinuteAgo.toInstant(),ZoneId.systemDefault());
如果您不想使用默认的zoneId,请使用以下代码(可选)获取可用的时区。
public class Main {
public static void main(String[] args) {
Set<String> allZones = ZoneId.getAvailableZoneIds();
List<String> zoneList = new ArrayList<String>(allZones);
Collections.sort(zoneList);
LocalDateTime dt = LocalDateTime.now();
for (String s : zoneList) {
ZoneId zone = ZoneId.of(s);
ZonedDateTime zdt = dt.atZone(zone);
ZoneOffset offset = zdt.getOffset();
String out = String.format("%35s %10s%n", zone, offset);
System.out.println(out);
}
}
}
使用其中一个代码代替ZoneId.systemDefault()
Calendar
可以转换为 LocalDateTime
。以下是示例代码:
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Calendar;
public class LDTTest {
public static void main(String[] args) {
final Calendar aMinuteAgo = Calendar.getInstance();
aMinuteAgo.add(Calendar.MINUTE, -1);
System.out.println(aMinuteAgo.getTime());
LocalDateTime ofInstant = LocalDateTime.ofInstant(aMinuteAgo.toInstant(), ZoneId.systemDefault());
System.out.println(ofInstant);
}
}