gpt4 book ai didi

Java解析DateTime并忽略时区

转载 作者:行者123 更新时间:2023-11-29 04:45:37 26 4
gpt4 key购买 nike

我需要解析以下格式的日期字符串。

"2016-05-19 13:07:15 PDT"

我的数据库服务器在 ET 中,但我想将 TIMESTAMP 2016-05-19 13:07:15 存储在我的数据库中,不带时区,也不将其转换为 ET。因此,从本质上讲,我想忽略字符串中的 PDT。

目前,我将我的字符串解析为 ZonedDateTime 对象并将其映射到我数据库中的 TIMESTAMP 数据类型,但是 hibernate 正在后端进行一些转换,因为它知道我的 ZonedDateTime 处于 PDT。因此,上面示例中的日期最终以 2016-05-19 16:07:15 而不是我想要的 2016-05-19 13:07 存储在我的数据库中:15

我想到的一个想法是将 PDT 从字符串末尾剥离,然后将其解析为 LocalDateTime,但在我这样做之前,我想看看是否有有什么方法可以从根本上忽略 ZonedDateTime 中的时区,或者将上面显示的字符串解析为 LocalDateTime(或其他一些不关心时间的 java 时间对象zone) 而无需实际进行从 PDT 到 ET 的转换。

有什么方法可以在解析之前不实际将时区从字符串中拉出而实现这一点?

最佳答案

这个怎么样?

String datestring = "2016-05-19 13:07:15 PDT";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss zzz");

LocalDateTime localDateTime = LocalDateTime.from(formatter.parse(datestring));
System.out.println(localDateTime);
// Output: 2016-05-19T13:07:15

编辑:作为替代方案,如果您已经有一个 ZonedDateTime 对象,这也有效(并删除时区):

LocalDateTime.from(zonedDateTime);

关于Java解析DateTime并忽略时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37330182/

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