【问题标题】:Keeping timezone while saving with Spring repository在使用 Spring 存储库保存时保持时区
【发布时间】:2020-03-31 09:10:56
【问题描述】:

我尝试使用 Spring 存储库将对象保存到 H2 数据库中。我需要保留原始时区,但它已转换为本地时区。

我有一个字段为ZonedDateTime dateTime 的对象,它标有@Column(columnDefinition= "TIMESTAMP WITH TIME ZONE"),因此在H2 中的值与时区一起保存。为了保存,我使用存储库extends JpaRepository,所以只需jpaRepository.save(entity)

2019-10-04T15:59:50.869-04:00[America/New_York] 变成 2019-10-04T19:59:50.869+03:00[Europe/Moscow] 对我来说什么是不合适的。 是否有任何属性可以防止转换为本地区域?

【问题讨论】:

    标签: java spring hibernate jdbc


    【解决方案1】:

    经过一番调查,我认为您无法使其正常工作(即 TIMESTAMP WITH TIME ZONE + JDBC 驱动程序 + 数据库 + Hibernate/JPA)。

    那么,我会怎么做:

    • 以 UTC 格式保存您的时间戳。
    • 单独存储用户的时区。
    • 如果需要,根据用户的时区向用户显示时间戳。

    【讨论】:

      猜你喜欢
      • 2018-01-13
      • 2019-11-07
      • 2021-05-14
      • 1970-01-01
      • 1970-01-01
      • 2022-12-23
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      相关资源
      最近更新 更多