如何将long毫秒转换为LocalDateTime
我有一个旧代码,它使用日历执行一些操作,我希望将结果毫秒转换为LocalDateTime。
final Calendar aMinuteAgo = Calendar.getInstance();
aMinuteAgo.add(Calendar.MINUTE, -1);
//Convert aMinuteAgo.getTimeInMillis() to LocalDateTime发布于 2016-03-23 05:45:46
Calendar可以转换为LocalDateTime。下面是示例代码导入java.time.LocalDateTime;导入java.time.ZoneId;导入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);
}
}发布于 2016-03-23 05:46:16
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()
https://stackoverflow.com/questions/36170416
复制相似问题