java.sql.Timestamp具有时区

时间:2019-03-16 19:03:27

标签: java jdbc timestamp timezone java.time

我读过的所有内容都表明时间戳记是UTC,没有偏移量或时区。但是,我99%肯定MS Sql Server JDBC正在从数据库中读取值并将其设置为我的本地时区。

更新:请不要引用可能重复的问题,询问如何使用UTC日期时间设置时间戳。我的问题是如何从数据库中读取 UTC时间戳值。

调试器显示该对象为GregorianCalender对象,其时区为丹佛。

enter image description here

1 个答案:

答案 0 :(得分:1)

这似乎可以解决问题。我猜它返回LocalDateTime时不使用时区。

LocalDateTime localDT = timestamp.toLocalDateTime();
odt = localDT.atOffset(ZoneOffset.UTC);

根据@Ole V.V.的建议进行了更新。