JVM时区设置为GMT。我需要系统时区,系统时区就是IST

时间:2014-08-20 06:48:54

标签: java calendar timezone jvm

我使用-D参数设置了jvm时区。有没有办法以编程方式获得系统时区?我不打算修改JVM时区集。我只需要使用本地系统的时区。

1 个答案:

答案 0 :(得分:0)

有一个私有方法TimeZone.getSystemTimeZoneID,它不符合Java标准 你可以通过反思来称呼它:

Method m = TimeZone.class.getDeclaredMethod("getSystemTimeZoneID", String.class, String.class);
m.setAccessible(true);

String javaHome = System.getProperty("java.home");
String systemTimeZone = (String) m.invoke(null, javaHome, null);

有一种类似的私有方法TimeZone.getSystemGMTOffsetID。它返回一个类似GMT+08:00的字符串。