LocalDateTime的毫秒数

时间:2016-03-23 05:24:19

标签: java

如何将long毫秒转换为LocalDateTime

我有一个旧代码,它使用日历执行某些操作,我想将结果毫秒转换为LocalDateTime。

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

2 个答案:

答案 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);

    }
}