2016-03-23 160 views
2

如何转换long毫秒到LocalDateTime毫秒到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

+0

这将工作,谢谢! –

回答

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

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