我将服务器上的时区设置为 BST(英国夏令时),并且传递给函数的日期以 UTC 计算。
在 Java Oracle 站点上,它只是将时间与“现在”进行比较,但是这个“现在”时间是否与设置的时区相同,或者它是运行它的服务器上设置的时间?
我将服务器上的时区设置为 BST(英国夏令时),并且传递给函数的日期以 UTC 计算。
在 Java Oracle 站点上,它只是将时间与“现在”进行比较,但是这个“现在”时间是否与设置的时区相同,或者它是运行它的服务器上设置的时间?
中没有时区java.util.Date
,它实际上是运行它的 JVM 的时区。
我的建议,如果您需要使用时区,请使用Joda
暗示java.util.Date
始终以 UTC 存储时间。例如,如果您调用System.currentTimeMillis()
或创建new Date()
,内部时间将采用 UTC。但Date.toString()
会为不同的默认时区提供不同的时间。
因此,如果您将 UTC 日期传递给before
函数,无论服务器时区如何,您都将获得正确的结果。