java.sql.Timestamp 有一个时区

java.sql.Timestamp has a timezone

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

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

调试器将对象显示为时区为丹佛的 GregorianCalender 对象。

这似乎解决了问题。我猜它 returns LocalDateTime 时它不使用时区。

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

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