关于jdbc:java.sql.Timestamp有一个时区

java.sql.Timestamp has a timezone

本问题已经有最佳答案,请猛点这里访问。

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

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

调试器显示保持为GregorianCalender对象的对象,其时区为Denver。

enter image description here


这似乎解决了这个问题。 我猜它什么时候返回一个LocalDateTime它不使用时区。

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

根据@Ole V.V的建议更新