我目前正在使用不同的时区java.util.TimeZone
.我做的第一件事是使用获取TimeZone ID的列表TimeZone.getAvailableIDs();
它返回了一堆Etc/GMT
ID,例如
Etc/GMT
Etc/GMT+0
Etc/GMT+1
Run Code Online (Sandbox Code Playgroud)
TimeZone的Javadoc说使用"例如,GMT+10
和GMT+0010
"
为了确保我使用的是正确的,我用两个ID做了一个小测试,结果与我的预期不符:
String id = "GMT-1";
Calendar c = Calendar.getInstance(TimeZone.getTimeZone(id));
System.out.println(id + '\n' + c.getTimeZone().getDisplayName() + " HOUR_OF_DAY " + c.get(Calendar.HOUR_OF_DAY) + '\n');
id = "GMT+1";
c = Calendar.getInstance(TimeZone.getTimeZone(id));
System.out.println(id + '\n' + c.getTimeZone().getDisplayName() + " HOUR_OF_DAY " + c.get(Calendar.HOUR_OF_DAY) + '\n');
id = "Etc/GMT-1";
c = Calendar.getInstance(TimeZone.getTimeZone(id));
System.out.println(id + '\n' + c.getTimeZone().getDisplayName() + " HOUR_OF_DAY " + c.get(Calendar.HOUR_OF_DAY) + '\n');
id …
Run Code Online (Sandbox Code Playgroud)