- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
PostgreSQL 9.3/postgresql-9.3-1100-jdbc41.jar
我有一个表,其中有一列类型为 timestamp without time zone
,这会生成具有适用的 java.util.Timestamp
属性的对象。
在插入期间,我看到的是 jOOQ 的绑定(bind)过程将 java.util.Timestamp
转换为具有本地时区偏移的日期。
例如,对于 unix 时间戳 1421109419(2015 年 1 月 13 日 00:36:59 GMT),属性设置为 new Timestamp(1421109419 * 1000)
。
从我看到的 jOOQ 记录器中:
2015-01-13 14:14:31,482 DEBUG [http-bio-8002-exec-4] org.jooq.tools.LoggerListener#debug:255 - -> with bind values : insert into "foo"."bar" ("start_date") values (timestamp '2015-01-13 13:36:59.0') returning "foo"."bar"."id"
2015-01-13 14:14:31,483 TRACE [http-bio-8002-exec-4] org.jooq.impl.DefaultBinding#trace:179 - Binding variable 3 : 2015-01-13 13:36:59.0 (class java.sql.Timestamp)
果然记录中的值是“2015-01-13 13:36:59”。
该软件在 NZDT 的机器上运行,它解释了 +13 偏移量。
鉴于时间是在与 TimeZone 无关的容器(时间戳)中提供的,我希望在创建插入语句时能够兑现这一点。
我怎样才能让 jOOQ 创建时间戳而不是本地时间?
最佳答案
不幸的是,有些事情对您不利:
由于这两个问题,如果您有两个不同的 JVM——一个使用洛杉矶时间,另一个使用纽约时间——每当您用一个 JVM 编写 TIMESTAMP 时,它就会是不同的“UTC 时间”其他 JVM。 TIMESTAMP 采用调整后的值并按给定的方式使用它。如果您将 TIMESTAMP 列更改为 TIMESTAMPTZ,那么两个 JVM 中的同一时间将始终是相同的 UTC 时间。
如果您查看 Postgres JDBC 驱动程序的 ConnectionFactoryImpl#openConnectionImp,您可以看到它将本地 JVM 的时区设置为数据库服务器 session 区的时区。
所以处理这个问题的唯一明智的方法是只使用 TIMESTAMPTZ 而不是 TIMESTAMP。这里有一些关于此的更多信息:
PostgreSQL/JDBC and TIMESTAMP vs. TIMESTAMPTZ
http://justatheory.com/computers/databases/postgresql/use-timestamptz.html
关于postgresql - jOOQ 时间戳与本地时区偏移一起存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27913735/
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!