And*_*ose 2 java hibernate jpa java-time
我需要解析以下格式的日期字符串。
“2016-05-19 13:07:15 PDT”
我的数据库服务器位于 ET 中,但我想将 TIMESTAMP 存储2016-05-19 13:07:15
在我的数据库中,没有时区,也不将其转换为 ET。所以,本质上,我想忽略字符串中的 PDT。
目前,我将字符串解析为一个ZonedDateTime
对象,并将其映射到数据库中的 TIMESTAMP 数据类型,但 hibernate 正在后端进行一些转换,因为它知道 myZonedDateTime
位于 PDT 中。因此,上面示例中的日期最终存储在我的数据库中,而2016-05-19 16:07:15
不是我想要的,2016-05-19 13:07:15
.
我想到的一个想法是从字符串末尾剥离 PDT,然后将其解析为 a LocalDateTime
,但在这样做之前,我想看看是否有任何方法可以基本上忽略 a 中的时区ZonedDateTime
,或者将上面显示的字符串解析为 a LocalDateTime
(或其他一些不关心时区的 java 时间对象),而不实际执行从 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
Run Code Online (Sandbox Code Playgroud)
编辑:作为替代方案,如果您已经有一个ZonedDateTime
对象,这也可以(并删除时区):
LocalDateTime.from(zonedDateTime);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3669 次 |
最近记录: |