またはLong
のインスタンスから のエポック値を抽出するにはどうすればよいですか? 次のことを試しましたが、別の結果が得られます。LocalDateTime
LocalDate
LocalDateTime time = LocalDateTime.parse("04.02.2014 19:51:01", DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss"));
System.out.println(time.getLong(ChronoField.SECOND_OF_DAY)); // gives 71461
System.out.println(time.getLong(ChronoField.EPOCH_DAY)); // gives 16105
1391539861
私が欲しいのは、単にローカルの datetime の値です"04.02.2014 19:51:01"
。私のタイムゾーンは、Europe/Oslo
夏時間を含む UTC+1 です。
ベストアンサー1
クラスとにはLocalDate
、LocalDateTime
タイムゾーンまたは時間オフセットこの情報なしでは、エポックからの経過秒数は不明確になります。ただし、オブジェクトには、インスタンスを渡すことで、タイムゾーン付きの日付/時刻オブジェクトに変換するメソッドがいくつかありますZoneId
。
ローカル日付
LocalDate date = ...;
ZoneId zoneId = ZoneId.systemDefault(); // or: ZoneId.of("Europe/Oslo");
long epoch = date.atStartOfDay(zoneId).toEpochSecond();
ローカル日付時刻
LocalDateTime time = ...;
ZoneId zoneId = ZoneId.systemDefault(); // or: ZoneId.of("Europe/Oslo");
long epoch = time.atZone(zoneId).toEpochSecond();