我的服务器在美国,我正在通过访问印度的应用程序 网络浏览器,在这种情况下
TimeZone.getDefault()
会返回什么? 如果它根据它将返回的内容返回基于印度的时区?我已将控制面板设置更改为不同的区域设置和 系统的不同时区,即使它没有改变 在我的设置上。
我把代码写成了休闲......
def dateFormat = DateFormat.getDateTimeInstance(DateFormat.DEFAULT,DateFormat.DEFAULT,Locale.getDefault())
dateFormat.setTimeZone(TimeZone.getDefault())
答案 0 :(得分:7)
它将返回执行JVM TimeZone.getDefault()的时区。因此,如果应用程序在印度的服务器上运行,它将类似于“Asia / Calcutta”。
答案 1 :(得分:1)
通常为主机设置默认时区,而不是用户或应用程序。在您的情况下,它将是运行应用程序的服务器的默认时区,最可能是美国时区。
尝试在服务器上的Unix控制台中运行命令date +%Z
。
答案 2 :(得分:0)
这是'此代码执行的位置'的问题。如果您正在谈论印度浏览器正在访问的Web应用程序,那么您获得的日期将在美国。好吧,除非你为用户的会话设置了正确的区域设置和时区。在Vaadin等框架中,一旦您在应用程序上调用setLocale()
,它也会设置时区,但在其他平台中,您可能必须明确使用具有特定时区的日期格式化程序。