毫秒转换为本地日期时间

5

如何将long类型的毫秒数转换为LocalDateTime

我有一段旧代码,其中涉及到对日历进行操作,我想将结果毫秒数转换为LocalDateTime。

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

3
LocalDateTime ofInstant = LocalDateTime.ofInstant(aMinuteAgo.toInstant(), ZoneId.systemDefault()); - Sanj
可以这样做,谢谢! - Arsen Alexanyan
2个回答

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()


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

    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接