如何将long
毫秒转换为LocalDateTime
?
我有一个旧代码,它使用日历执行某些操作,我想将结果毫秒转换为LocalDateTime。
final Calendar aMinuteAgo = Calendar.getInstance();
aMinuteAgo.add(Calendar.MINUTE, -1);
//Convert aMinuteAgo.getTimeInMillis() to LocalDateTime
答案 0 :(得分:2)
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()
答案 1 :(得分:0)
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);
}
}