2016-03-23 9 views
2

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

+0

それはうまくいくでしょう、ありがとう! –

答えて

0

CalendarLocalDateTimeを変換することができます。サンプルコードは以下の通りです import java.time.LocalDateTime; import java.time.ZoneId; import java.util.Calendar;

2
LocalDateTime ofInstant = LocalDateTime.ofInstant(aMinuteAgo.toInstant(),ZoneId.systemDefault()); 

あなたが使用可能な時間帯を取得するには、このコード(別売)を使用するzoneidデフォルトを使用したくない場合は

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

    } 
} 

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(の代わりに、コードのいずれか)

関連する問題