TimeZone.getDefault()没有给我时区

时间:2012-12-04 10:22:50

标签: android

这个硬编码的GMT+2就像一个魅力。

calendarCurrent.setTimeZone(TimeZone.getTimeZone("GTM+2"));

当然我不需要硬编码,所以我正在使用

calendarCurrent.setTimeZone(TimeZone.getDefault());

但这从来没有给我适当的价值。我做错了吗?

2 个答案:

答案 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"/>