このハードコードGMT+2
は魅力のように機能します。
calendarCurrent.setTimeZone(TimeZone.getTimeZone("GTM+2"));
もちろん、ハードコードする必要はないので、使用しています
calendarCurrent.setTimeZone(TimeZone.getDefault());
しかし、これは私に適切な価値を与えることは決してありません。私は何か間違ったことをしていますか?
このハードコードGMT+2
は魅力のように機能します。
calendarCurrent.setTimeZone(TimeZone.getTimeZone("GTM+2"));
もちろん、ハードコードする必要はないので、使用しています
calendarCurrent.setTimeZone(TimeZone.getDefault());
しかし、これは私に適切な価値を与えることは決してありません。私は何か間違ったことをしていますか?
デフォルトのタイムゾーンはシステムによって自動的に検出されるため、TimeZone.setDefault() を明示的に呼び出す必要はありません。
タイムゾーンの自動検出はエミュレーターでは機能しませんが、-timezone 起動フラグを使用して設定できます。
また、タイムゾーンを変更する推奨される方法は、現在の SDK には含まれていない設定アプリを使用することです。今のところ、次を使用できます。
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.setTimeZone(timezone);
で動作します
<uses-permission android:name="android.permission.SET_TIME_ZONE"/>