【问题标题】:Is it possible to set timezone on H2 driver connection是否可以在 H2 驱动程序连接上设置时区
【发布时间】:2014-12-08 16:14:31
【问题描述】:

参考旧帖:Set default timezone H2 database

是否可以在 H2 的当前版本中设置连接/数据库级别的时区,而不是依赖加载驱动程序的 JVM 的时区?我想将与我们的 H2 DB 的连接显式设置为 UTC,而不是依赖于系统属性。我完全理解数据库本身不存储时区信息,但它是 JDBC 驱动程序在访问数据时对时区进行了一些解释。

如果不可用,是否可以添加这样的功能(可能在 JDBC URL 字符串中)?

【问题讨论】:

  • 听起来像XY problem。你能解释一下你想解决什么问题吗?
  • 我想确保日期时间以 UTC 格式存储和检索。现在,我有一个 H2 数据库,其中存储了与时区无关的时间戳。这些时间戳的检索值取决于调用 JVM 的时区。如果可能的话,我确实希望允许这样做 - 我希望我的应用程序能够在连接字符串上指定所有检索到的时间戳的时区。
  • 对不起,我不明白你的意思。你能举一个你想解决的问题的具体例子吗?
  • @ThomasMueller,我会为您打开一个关于时区使用的错误。我在 1.3.175 中找到的。 1.4.xxx 版本中的某些内容是否有可能发生变化?
  • @TonyChemit 是的,从那时起发生了很多变化。

标签: h2


【解决方案1】:

我遇到了同样的问题并实施了一个快速解决方法,方法是将这些放在加载 H2 DB 驱动程序之前。

System.setProperty("user.timezone", "UTC");
TimeZone.setDefault(null);

Class.forName("org.h2.Driver");

【讨论】:

  • 我尝试了这个,但在某些时区仍然有一些奇怪的日期。
猜你喜欢
  • 2021-02-02
  • 1970-01-01
  • 2014-02-16
  • 2022-01-07
  • 2020-08-26
  • 1970-01-01
  • 2017-03-08
  • 1970-01-01
  • 2016-04-25
相关资源
最近更新 更多