gpt4 book ai didi

java - 如何从 LocalDate 和 LocalDateTime 中提取纪元?

转载 作者:行者123 更新时间:2023-12-02 01:23:16 25 4
gpt4 key购买 nike

如何从 LocalDateTimeLocalDate 实例中将纪元值提取为 Long?我试过了以下,但它给了我其他结果:

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

我想要的只是本地日期时间“04.02.2014 19:51:01”的值1391539861。我的时区是 Europe/Oslo UTC+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();

关于java - 如何从 LocalDate 和 LocalDateTime 中提取纪元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22990067/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com