我使用java.time.ZonedDateTime
创建一个带有时区信息的时间戳:
2022-11-27T22:32:27.697077+09:00[Asia/Tokyo]
我的理解是,当JPA实体插入到数据库中时,它将转换为UTC,因为这是数据库的时区配置。
转换后,数据库中的值为:
2022-11-27 13:32:27.697077+00
基于这种情况:
1.我想知道一旦数据存储在数据库中,[Asia/Tokyo]
信息是否会丢失?
1.如何将[Asia/Tokyo]
作为原始时区,
1.还是需要我自己手动单独存储这些信息?
Java实体:
@Column(name = "zoned_date_time")
private ZonedDateTime zonedDateTime;
液体基质changeSet
:
<databaseChangeLog>
<changeSet author="me" id="1669077010756-1">
<addColumn tableName="item">
<column name="zoned_date_time" type="timestamptz"/>
</addColumn>
</changeSet>
</databaseChangeLog>
插入数据库之前JVM的输出:
java.time.ZonedDateTime: 2022-11-27T22:32:27.697077+09:00[Asia/Tokyo]
PostgreSQL Docker容器内的查询:
一个
1条答案
按热度按时间2jcobegt1#
我想知道[亚洲/东京]的信息一旦存储在数据库中是否会丢失?
是的
我如何将[Asia/Tokyo]作为原始时区,还是需要自己手动单独存储该信息?
可以将UTC日期时间转换为任何时区;因此,如果您已存储时区ID(例如Asia/Tokyo),则可以使用该时区ID恢复原始
ZonedDateTime
,如下所示: