Java 毫秒到LocalDateTime

Java 毫秒到LocalDateTime,java,Java,如何将long毫秒转换为LocalDateTime 我有一个旧代码,它对calendar执行一些操作,我想将结果毫秒转换为LocalDateTime final Calendar aMinuteAgo = Calendar.getInstance(); aMinuteAgo.add(Calendar.MINUTE, -1); //Convert aMinuteAgo.getTimeInMillis() to LocalDateTime 日历可以转换为LocalDateTime。下面是示例代码

如何将
long
毫秒转换为
LocalDateTime

我有一个旧代码,它对calendar执行一些操作,我想将结果毫秒转换为LocalDateTime

final Calendar aMinuteAgo = Calendar.getInstance();
aMinuteAgo.add(Calendar.MINUTE, -1);
//Convert aMinuteAgo.getTimeInMillis() to LocalDateTime

日历
可以转换为
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);

    }
}
如果不想使用默认时区ID,请使用此代码(可选)获取可用时区

    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);
        }
      }
}
公共类主{
公共静态void main(字符串[]args){
设置allZones=ZoneId.getAvailableZoneIds();
列表区域列表=新阵列列表(所有区域);
集合。排序(区域列表);
LocalDateTime dt=LocalDateTime.now();
用于(字符串s:区域列表){
ZoneId zone=ZoneId.of(s);
ZonedDateTime zdt=dt.atZone(zone);
ZoneOffset offset=zdt.getOffset();
String out=String.format(“%35s%10s%n”,区域,偏移量);
System.out.println(out);
}
}
}

使用其中一个代码代替ZoneId.systemDefault()

LocalDateTime of Instant=LocalDateTime.of Instant(aMinuteAgo.toInstant(),ZoneId.systemDefault());那就行了,谢谢!
    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);
        }
      }
}