当前位置: 首页 > 知识库问答 >
问题:

更改jdbc查询连接结果中的时间戳时区

吉嘉珍
2023-03-14

当我通过jdbc执行查询时,选择sysdate;我得到了正确的时间戳,在UTC中具有正确的值,但不幸的是这个值的时区是+2。

例如:服务器有2019-06-26T18:10:13.000+0-00,但我得到了2019-06-26T18:10:13.000+0200

之后,我通过jackson将时间戳映射到json并向客户端发送响应,客户端得到了不正确的值2019-06-26T16:10:13.000+0000。

我无法更改应用程序和映射器的时区。

我该如何解决这个问题?

共有1个答案

郎言
2023-03-14

您需要通过使用getTimestamp(String columnLabel,Calendar cal)方法指定TimeZone来指定日期为UTC:

Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"));

Timestamp ts = resultset.getTimestamp("TimestampColumn", cal);

正如javadoc所说:

如果基础数据库未存储时区信息,则此方法使用给定的日历为时间戳构造适当的毫秒值。

 类似资料:
  • 我想查询cassandra timestamp列,例如this hour、last hour、beather。 我在mysql中执行了与昨天数据相同的查询

  • 使用Cassandra 2.28,Drive 3,Sparks2。我在Cassandra中有一个timestamp列,我只需要按日期部分查询它。如果我按日期查询:<代码>。其中(“交易日期=?”,“2012-01-21”:它不会带来任何结果。如果我包括时间部分,它会显示无效日期。我的数据(如我在cqlsh中所读)是:2012-01-21 08:01:00 0000 参数:“2012-01-21”

  • 问题内容: 有没有一种方法可以获取MySQL查询的时间(特别是使用PHP)?即,完成查询所花费的实际时间。 如:结果1-10表示棕色。 (0.11秒) 我试图寻找一个例子,无济于事。这是我的代码示例: 对于当前的全文搜索,请使用MyISAM表引擎。任何帮助都将是不可思议的。谢谢。 问题答案: 注意 ,由于参数为true ,这将使您以 秒 (而不是微秒)为单位的运行时间最接近的微秒。看到这个

  • 问题内容: 我创建了一个小测试应用程序来跟踪我在Heroku上使用Postgres遇到的问题:http : //snippi.com/s/xd511rf 正如您在第 49 行中看到的那样,我想检索 今天 创建的所有条目。这将是我使用Ruby Gem DataMapper进行的 测试数据的前两项。 当我在笔记本电脑(Ubuntu 12.10,HP,Ruby 1.9.3)上运行此应用程序时,一切都会得

  • 我选择“无时区”是因为我知道我的应用程序使用的所有时间戳总是UTC。就我得到的文档而言,“with timestamp”的唯一区别是,我可以提供其他时区的值,然后将其转换为UTC。然而,我想避免这样的自动转换,因为如果我知道我的值是UTC,它们几乎没有任何好处。 当我在测试表中添加新记录并使用pgAdmin查看表的内容时,我可以看到插入日期已正确地保存为UTC格式。 但是,当我尝试使用JDBC选择

  • 问题内容: 我可以看到例如在这里进行了几次讨论,但是我认为由于Elasticsearch中的重大更改,解决方案已过时。 我正在尝试将我在Kafka主题中的Json中的long / epoch字段转换为通过连接器推送的Elasticsearch日期类型。 当我尝试添加动态映射时,我的Kafka连接更新失败,因为我试图将两个映射应用于字段_doc和kafkaconnect。我认为这是关于版本6的重大更