Android时区差异

时间:2014-04-07 16:13:37

标签: java android timezone

我写了一个简单的java程序

System.out.println(TimeZone.getDefault().getID()); // printing Asia/Calcutta

Android文件中的相同代码行:

System.out.println(TimeZone.getDefault().getID()); //printing America/New_York

我的默认时区是亚洲/加尔各答,为什么会这样?
请帮忙。

2 个答案:

答案 0 :(得分:0)

在Java中 TimeZone.getDefault()以这样的方式初始化:

  1. 查找系统属性" user.timezone " (通过将此属性设置为" Asia / Kolkata")来启动应用程序始终是一个很好的解决方法。

  2. 如果不存在,请查看" user.country "和" java.home"并使用本机方法访问平台区域信息(所以你应该检查你的android-OS配置的时区)。

  3. 如果仍然不存在则退回GMT

  4. 更新:

    对于 Android (实际上不是Java),您还可以检查this other SO-post,其中的答案提及系统属性System.getProperty("persist.sys.timezone");。您可以尝试为您打印此属性,并在那里按照给定的链接。

答案 1 :(得分:-1)

您可以随时使用:

TimeZone tz = Calendar.getInstance().getTimeZone();