2013-02-18 82 views
4

什么是将DateFormat时区设置为GMT + 1的正确字符串? 根据文档它应该是像“GMT + 00:00”。 我已经尝试了其他形式,但显然我总是回退到GMT(我目前的时区)。Java设置DateFormat时区为GMT + 1

在此先感谢!

回答

5

您可以通过代码下面的代码片段找到一整套时区:

for (String id : TimeZone.getAvailableIDs()) { 
    System.out.println(id); 
} 

和再利用它直接设置时区:

DateFormat df = DateFormat.getDateInstance(); 
df.setTimeZone(TimeZone.getTimeZone(id)); 
8

您可以使用

TimeZone fixedUtcPlus1 = new SimpleTimeZone(TimeUnit.HOURS.toMillis(1), 
              "GMT+1"); 
format.setTimeZone(fixedUtcPlus1); 

或者只是:

TimeZone zone = TimeZone.getTimeZone("GMT+1"); 
format.setTimeZone(zone); 

(道歉周边+1和-1的反复修改...坏诊断我的一部分 “GMT + 1”是好的,但它相当于等是“ETC/GMT-1” - 很混乱)

+0

的SimpleTimeZone构造函数只接受一个int,不长,所以我说新的SimpleTimeZone((INT)TimeUnit.HOURS.toMillis(1) “GMT + 1”);会更正确。 ... 感谢您对Etc/GMT-1实际上是GMT + 1的解释。那些奇怪的东西让我怀疑自己是否正在自己做错了几天! :) – 2017-06-02 13:37:03