gpt4 book ai didi

java - 在时区中解析 DateTime

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:18 25 4
gpt4 key购买 nike

我有一个来自洛杉矶的约会时间。尽可能适用夏令时。我正在尝试将该日期时间转换为时间戳,但我似乎不了解 Java 8 DateTime API。以下代码段返回 1238112000(如果以 UTC 指定,则为正确日期)。我应该更改什么以改为显示 1238137200

String date = "March 27, 2009 00:00:00";
DateTimeFormatter formatter = DateTimeFormatter.
ofPattern("MMMM dd, yyyy HH:mm:ss", Locale.ENGLISH).
withZone(ZoneId.of("America/Los_Angeles"));
LocalDateTime.parse(date, formatter).toEpochSecond(ZoneOffset.UTC))

最佳答案

通过将日期解析为 LocalDateTime,您将忽略来自格式化程序的时区信息。你应该使用 ZonedDateTime :

public static void main(String[] args) {
String date = "March 27, 2009 00:00:00";
DateTimeFormatter formatter =
DateTimeFormatter.ofPattern("MMMM dd, yyyy HH:mm:ss", Locale.ENGLISH)
.withZone(ZoneId.of("America/Los_Angeles"));
long second = ZonedDateTime.parse(date, formatter).toEpochSecond();
System.out.println(second); // prints "1238137200"
}

在返回的实例上,您可以调用 toEpochSecond() .

关于java - 在时区中解析 DateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36481505/

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