【发布时间】:2018-05-29 02:48:41
【问题描述】:
有人可以解释为什么会这样吗?为什么该时间有 24 分钟的偏移量以及如何处理?
Scala 2.12 和 Java 8。
scala> java.sql.Timestamp.valueOf("1900-01-01 00:59:00")
res22: java.sql.Timestamp = 1900-01-01 00:59:00.0
scala> java.sql.Timestamp.valueOf("1900-01-01 01:00:00")
res23: java.sql.Timestamp = 1900-01-01 01:24:00.0
scala> java.sql.Timestamp.valueOf("1900-01-01 01:14:00")
res24: java.sql.Timestamp = 1900-01-01 01:38:00.0
scala> java.sql.Timestamp.valueOf("1900-01-01 01:20:00")
res25: java.sql.Timestamp = 1900-01-01 01:44:00.0
scala> java.sql.Timestamp.valueOf("1900-01-01 01:23:00")
res26: java.sql.Timestamp = 1900-01-01 01:47:00.0
scala> java.sql.Timestamp.valueOf("1900-01-01 01:24:00")
res27: java.sql.Timestamp = 1900-01-01 01:24:00.0
scala> java.sql.Timestamp.valueOf("1900-01-01 01:30:00")
res28: java.sql.Timestamp = 1900-01-01 01:30:00.0
【问题讨论】:
-
您的语言环境是什么?仅通过 Java 8,没有 Scala,我无法在我的语言环境(en_US)中重现它。
-
@rgettman
ZoneId.systemDefault返回Europe/Warsaw -
我用
System.setProperty("user.timezone", "Europe/Warsaw");重现了这个问题...对我来说看起来像是一个错误,过去也有过时区错误。单步浏览库代码,似乎在该期间 zoneinfo 数据库中可能存在虚假转换。这需要一些工作来验证,很遗憾,我现在没有时间。 -
这里有一个非常相似的问题,只是时区不同:Why is subtracting these two times (in 1927) giving a strange result?
-
我可以用纯 Java 8 重现你的输出。所以这不是 Scala 的错。
标签: java sql postgresql scala timestamp