【问题标题】:Java 8, Hibernate and PostgreSQL - how to store date with timezone?Java 8、Hibernate 和 PostgreSQL - 如何使用时区存储日期?
【发布时间】:2016-12-12 00:27:51
【问题描述】:

我使用 Java 8、Hibernate 5.1.0.Final 和 PostgreSQL。我正在考虑将带有时区的日期时间存储到数据库中。

我试过了

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created")
private Date created;

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created")
private OffsetDateTime created;

@Temporal(TemporalType.TIMESTAMP)
@Column(name = "created")
private ZonedDateTime created;

我使用hibernate.hbm2ddl.auto update 创建表、列等。上述所有选项都使用timestamp without timezone 创建列。如何自动创建timestamp with timezone

在数据库中存储时间和时区的最佳方式是什么?

【问题讨论】:

    标签: java postgresql hibernate datetime timezone


    【解决方案1】:

    通常使用 UTC 休眠存储日期。然后您需要将所有时区转换为 UTC。

    在启动时,

    TimeZone.setDefault(TimeZone.getTimeZone("ETC/UTC"));
    

    【讨论】:

      猜你喜欢
      • 2021-08-29
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 2010-10-05
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      • 2016-07-25
      相关资源
      最近更新 更多