TimeZone.getDefault()如何工作?

时间:2013-02-15 13:22:23

标签: java

  

我的服务器在美国,我正在通过访问印度的应用程序   网络浏览器,在这种情况下TimeZone.getDefault()会返回什么?   如果它根据它将返回的内容返回基于印度的时区?

     

我已将控制面板设置更改为不同的区域设置和   系统的不同时区,即使它没有改变   在我的设置上。

     

我把代码写成了休闲......

def dateFormat = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.DEFAULT,Locale.getDefault())
dateFormat.setTimeZone(TimeZone.getDefault())

3 个答案:

答案 0 :(得分:7)

它将返回执行JVM TimeZone.getDefault()的时区。因此,如果应用程序在印度的服务器上运行,它将类似于“Asia / Calcutta”。

答案 1 :(得分:1)

通常为主机设置默认时区,而不是用户或应用程序。在您的情况下,它将是运行应用程序的服务器的默认时区,最可能是美国时区。

尝试在服务器上的Unix控制台中运行命令date +%Z

答案 2 :(得分:0)

这是'此代码执行的位置'的问题。如果您正在谈论印度浏览器正在访问的Web应用程序,那么您获得的日期将在美国。好吧,除非你为用户的会话设置了正确的区域设置和时区。在Vaadin等框架中,一旦您在应用程序上调用setLocale(),它也会设置时区,但在其他平台中,您可能必须明确使用具有特定时区的日期格式化程序。