我写了一个简单的java程序
System.out.println(TimeZone.getDefault().getID()); // printing Asia/Calcutta
Android文件中的相同代码行:
System.out.println(TimeZone.getDefault().getID()); //printing America/New_York
我的默认时区是亚洲/加尔各答,为什么会这样?
请帮忙。
答案 0 :(得分:0)
在Java中 TimeZone.getDefault()
以这样的方式初始化:
查找系统属性" user.timezone " (通过将此属性设置为" Asia / Kolkata")来启动应用程序始终是一个很好的解决方法。
如果不存在,请查看" user.country "和" java.home"并使用本机方法访问平台区域信息(所以你应该检查你的android-OS配置的时区)。
如果仍然不存在则退回GMT 。
更新:
对于 Android (实际上不是Java),您还可以检查this other SO-post,其中的答案提及系统属性System.getProperty("persist.sys.timezone");
。您可以尝试为您打印此属性,并在那里按照给定的链接。
答案 1 :(得分:-1)
您可以随时使用:
TimeZone tz = Calendar.getInstance().getTimeZone();