LocalDate と LocalDateTime からエポックを抽出するにはどうすればいいですか? 質問する

LocalDate と LocalDateTime からエポックを抽出するにはどうすればいいですか? 質問する

またはLongのインスタンスから のエポック値を抽出するにはどうすればよいですか? 次のことを試しましたが、別の結果が得られます。LocalDateTimeLocalDate

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

クラスとにはLocalDateLocalDateTimeタイムゾーンまたは時間オフセットこの情報なしでは、エポックからの経過秒数は不明確になります。ただし、オブジェクトには、インスタンスを渡すことで、タイムゾーン付きの日付/時刻オブジェクトに変換するメソッドがいくつかあります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();

おすすめ記事