【发布时间】:2011-06-10 09:13:22
【问题描述】:
我在服务器上将时区设置为 BST(英国夏令时),并且传递给函数的日期以 UTC 计算。
在 Java Oracle 网站上,它只是将时间与“现在”进行比较,但是这个“现在”时间是与设置的时区相同还是与运行它的服务器上设置的时区相同?
【问题讨论】:
标签: java timezone date-comparison
我在服务器上将时区设置为 BST(英国夏令时),并且传递给函数的日期以 UTC 计算。
在 Java Oracle 网站上,它只是将时间与“现在”进行比较,但是这个“现在”时间是与设置的时区相同还是与运行它的服务器上设置的时区相同?
【问题讨论】:
标签: java timezone date-comparison
java.util.Date 中没有时区,它实际上是运行它的 JVM 的时区。
我的建议,如果您需要使用时区,请使用Joda
【讨论】:
暗示java.util.Date 始终以UTC 存储时间。例如,如果您调用 System.currentTimeMillis() 或创建 new Date(),则内部时间将采用 UTC。但是Date.toString() 会为不同的默认时区提供不同的时间。
因此,如果您将 UTC 日期传递给 before 函数,无论服务器时区如何,您都会得到正确的结果。
【讨论】: