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