如何通过命令行为jvm设置时区

Mah*_*n M 2 java timezone datetime jvm date

我本地机器的时区是HST。但是 JVM 给了我 CUT/UTC 时区。我尝试使用java -Duser.timezone=America/Adak Example,但它只为 Example.class 设置了 HST。如何/在哪里可以 看到/更改 JVM 的时区?

/etc/sysconfig/clock 中的 ZONE 值仅指向 HST 时区。

class Example {
public static void main(String[] args) {
    System.out.println(java.util.TimeZone.getDefault());
} 
}
Run Code Online (Sandbox Code Playgroud)

上面的代码给了我UTC 时区

我正在使用CentOS vagrant boxjava 8

我可以使用java -Duser.timezone=America/Adak设置时区

通过使用上面的语句,我们在外部设置时区。但我们没有采用Default/machine 的时区

我在问我们如何使用 java获取/查看/更改系统的时区

Tho*_*sch 5

您可以通过以下方式查看 JVM 的时区

System.out.println(TimeZone.getDefault());
Run Code Online (Sandbox Code Playgroud)

您可以在 JVM 调用中设置它,例如

java -Duser.timezone=HST ...
Run Code Online (Sandbox Code Playgroud)

或以编程方式通过类似

TimeZone.setDefault(TimeZone.getTimeZone("HST"));
Run Code Online (Sandbox Code Playgroud)