這個硬編碼GMT+2
就像一個魅力。TimeZone.getDefault()不給我我所在的時區
calendarCurrent.setTimeZone(TimeZone.getTimeZone("GTM+2"));
五言我並不需要它硬編碼的,所以我用
calendarCurrent.setTimeZone(TimeZone.getDefault());
但這從來沒有給我應有的價值。難道我做錯了什麼?
這個硬編碼GMT+2
就像一個魅力。TimeZone.getDefault()不給我我所在的時區
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"/>
......我很想知道爲什麼對這個答案進行倒票。它是完整的,內容豐富的,並幫助我理解爲什麼在模擬器上測試時我沒有獲得正確的TimeZone。 – dell116
我剛跑'Log.d(TAG,TimeZone.getDefault()。toString());'在設置爲英國時間的電話上得到了'org.apache.harmony.luni.internal.util.ZoneInfo [ 「GMT」,mRawOffset = 0,mUseDst =真]'。 (我們現在不在DST中,但我認爲mUseDst可能意味着它將來會了解DST。)你說的是什麼? – emrys57
什麼是預期值/實際值,以及您的設置中設置的時區是什麼? – njzk2