我正在尝试通过 Joda 中的 DateTimeZone
更改 Timestamp
的值:
DateTime dt = new DateTime(rs.getTimestamp("anytimestampcolumn"),
DateTimeZone.forID("anytimezone"));
Timestamp ts = new Timestamp(dt.getMillis());
对于
DateTime
,值为:2013-04-13T22:56:27.000+03:00
对于
TimeStamp
,值为:2013-04-13 22:56:27.0
Timestamp
没有时区差异。
如何使用 TimeZone 获得正确的时间戳? 例如我想得到“2013-05-13 01:56:27.0”。
编辑: 使用 MySQL ,列类型是 TIMESTAMP
当然, rs
是 ResultSet
。
原文由 oko 发布,翻译遵循 CC BY-SA 4.0 许可协议
实际上这不是一个重复的问题。这就是我多次解决问题的方法:
这是从所需时区偏移的方法。
让我们回到我们的代码,我们从查询的结果集中获取时间戳,并将它与时区一起使用来创建我们的日期时间。
现在我们将我们的偏移量添加到日期时间,并从中获取时间戳。
可能这不是获得它的实际方法,但它解决了我的问题。我希望它能帮助任何被困在这里的人。