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 的建议进行了更新。
我读过的所有内容都说时间戳是 UTC,没有偏移量或时区。但是,我 99% 肯定 MS Sql 服务器 JDBC 正在从数据库中读取值并将其设置为我的本地时区。
更新: 请不要参考可能重复的问题询问如何使用 UTC 日期时间设置时间戳。我的问题是如何从数据库中读取 UTC 时间戳值。
调试器将对象显示为时区为丹佛的 GregorianCalender 对象。
这似乎解决了问题。我猜它 returns LocalDateTime 时它不使用时区。
LocalDateTime localDT = timestamp.toLocalDateTime();
odt = localDT.atOffset(ZoneOffset.UTC);
根据@Ole V.V 的建议进行了更新。