我正在开发一个Android应用程序,它必须列出具有日期和时间的活动。我想忽略设备的时区,并始终显示时区+02:00的时间。
该申请适用于西班牙,但如果来自英国的其他时区的人使用该申请,我希望活动时间出现在当地西班牙时间。
日期为UTC格式,使用Calendar.getTime()。toLocaleString(),时间在设备的本地时区中出现。
我想知道这是否是一种设置必须使用我的应用程序的默认时区的方法,以及当我调用Calendar.getTime()时.toLocaleString()方法总是在本地时区获取时间+2尽管有设备时区
答案 0 :(得分:1)
TimeZone.setDefault(TimeZone.getTimeZone("GMT+3"));
设置默认时区。对Calendar.getInstance()
的后续调用始终返回,就好像设备位于该时区一样。
答案 1 :(得分:0)
您需要设置日历的时区。 这可以这样做:
Calendar.setTimeZone(TimeZone timezone);
然后您的日历将使用不同的时区。
如果要更改系统时区,可以使用AlarmManager的setTimeZone()
来完成。
执行此操作时,清单必须包含正确的权限,即
android.permission.SET_TIME
我找到了Here的其他解决方案,请查看。