Java将DateFormat时区设置为GMT + 1

Rui*_*Rui 4 java timezone simpledateformat

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

提前致谢!

Jon*_*eet 8

您可以使用

TimeZone fixedUtcPlus1 = new SimpleTimeZone(TimeUnit.HOURS.toMillis(1),
                                            "GMT+1");
format.setTimeZone(fixedUtcPlus1);
Run Code Online (Sandbox Code Playgroud)

要不就:

TimeZone zone = TimeZone.getTimeZone("GMT+1");
format.setTimeZone(zone);
Run Code Online (Sandbox Code Playgroud)

(对于重复编辑+1和-1的重复编辑道歉...我的错误诊断."GMT + 1"很好,但其Etc等价物是"Etc/GMT-1" - 非常令人困惑.)


Ram*_*man 5

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

for (String id : TimeZone.getAvailableIDs()) {
    System.out.println(id);
}
Run Code Online (Sandbox Code Playgroud)

并重复使用它来直接设置时区:

DateFormat df = DateFormat.getDateInstance();
df.setTimeZone(TimeZone.getTimeZone(id));
Run Code Online (Sandbox Code Playgroud)