2016-03-23 159 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()