java date.before 函数是否考虑时区?
我将服务器上的时区设置为 BST(英国夏令时),并且传递到函数中的日期是按 UTC 计算的。
在 Java Oracle 站点上,它只是指将时间与“现在”进行比较,但是这个“现在”时间是与设置的时区相同还是与运行它的服务器上设置的时区相同?
I have the timezone set on the server to BST (British Daylight Savings Time), and the date being passed into the function was calculated in UTC.
On the Java Oracle site, it simply refers to comparing the time as "now", but will this "now" time be the same timezone as set or will it be the one set on the server it is running on?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
java.util.Date
中没有时区,它实际上是运行它的 JVM 的时区。我的建议是,如果您需要使用时区,请使用 乔达
There is no timezone in the
java.util.Date
, it's effectively the timezone of the JVM it's running in.My advice, if you need to work with timezones, use Joda
这意味着
java.util.Date
始终以 UTC 格式存储时间。例如,如果您调用 System.currentTimeMillis() 或创建 new Date() ,内部时间将采用 UTC 格式。但是Date.toString()
将为不同的默认时区提供不同的时间。因此,如果您将 UTC 日期传递到
before
函数中,无论服务器时区如何,您都会得到正确的结果。It's implied that
java.util.Date
always stores time in UTC. For instance if you callSystem.currentTimeMillis()
or createnew Date()
, internal time will be in UTC. butDate.toString()
will give different time for different default timezones.So if you pass UTC date into
before
function, you will get correct result regardless of server time zone.