如何应对国际时间?

ale*_*lex 0 java timezone jsp

我建立了一个新网站.但主持人在美国.我不在美国.我需要在网站页面上获取时间与一个本地变量进行比较.但由于时差,它有8个小时差异.如何解决这个问题?

我的代码

SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");  
java.util.Date currentTime = new java.util.Date();  
String dateString = formatter.format(currentTime);  `
Run Code Online (Sandbox Code Playgroud)

如何修改这些代码?

Boz*_*zho 6

java.util.Date不支持时区.您应该通过TimeZone调用将其传递给格式化程序formatter.setTimeZone(tz).

在处理日期时,joda-time被认为是更好的选择.请注意,为了格式化,使用起来很好Date,但一般建议在i18n时不要依赖它.(注意许多已弃用的方法)

然后让每个用户设置他的时区.理想情况下,根据他的浏览器区域设置建议/假设时区.看这里

并始终将日期存储在固定的时区 - 最好是GMT/UTC.

  • +1表示在GMT中存储时间,但-1表示不使用"日期".使用"Date"没有任何问题,只是定义了一个时间点.您需要做的就是告诉格式化程序您希望日期格式化的"TimeZone". (2认同)