这个硬编码的GMT+2
就像一个魅力。
calendarCurrent.setTimeZone(TimeZone.getTimeZone("GTM+2"));
当然我不需要硬编码,所以我正在使用
calendarCurrent.setTimeZone(TimeZone.getDefault());
但这从来没有给我适当的价值。我做错了吗?
答案 0 :(得分:0)
我猜它应该自动运行。
但是我看到有人使用 setDefault(..)
TimeZone.setDefault(TimeZone.getTimeZone("Europe/London"));
答案 1 :(得分:-1)
系统会自动检测默认时区,因此您无需显式调用TimeZone.setDefault()。
时区自动检测在模拟器上不起作用,但您可以使用-timezone启动标志来设置它。
此外,推荐的更改时区的方法是通过“设置”应用,该应用不包含在当前的sdk中。 现在您可以使用以下内容:
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.setTimeZone(timezone);
适用于
<uses-permission android:name="android.permission.SET_TIME_ZONE"/>