2012-05-25 120 views
2

我正在開發一個應用程序的Android必須列出活動的日期和時間。我想忽略設備的時區,並始終顯示時區+02:00的時間。設置爲Android應用程序使用的默認時區

該應用程序適用於西班牙,但如果來自另一個時區的英國人使用該應用程序,我希望活動時間出現在本地西班牙語時間。

日期格式爲UTC格式,使用Calendar.getTime()。toLocaleString(),設備的本地時區顯示時間。

我想知道如果是一種方法來設置一個默認時區,必須使用我的應用程序,並且當我調用Calendar.getTime()。toLocaleString()方法時總是在本地時區+ 2儘管設備時區

回答

0

您需要設置日曆的時區。 這是可以做到這樣的:

Calendar.setTimeZone(TimeZone timezone); 

然後你的日曆會用不同的時區工作。

如果您想更改系統時區,可以使用AlarmManager的setTimeZone()來完成。

下執行該清單必須包含正確的權限,這是

android.permission.SET_TIME

鏈接Documentation

而且還有一些其他的解決辦法,我發現Here,檢查出來。

+1

對不起,我沒有解釋清楚,我想要的是一種爲我的應用程序設置默認時區的方法。當我調用Calendar.getTime()。toLocaleString()時,我希望始終獲得時區+2的時間,而不管設備的本地時區。每次我在用戶屏幕上打印時間時,我都想避免生成calendar.setTimeZone。 –

+0

修訂解答。 –

+0

但是,如果我沒有錯,我總是設置Calendar.setTimeZone(TimeZone時區);每次我都要展示一段時間。然後我不喜歡更改系統時區的選項,因爲我將更改設備時間,每當我的應用程序失去焦點時,我將不得不退回系統時區。我正在尋找一種方法來爲我的應用程序設置默認時區,並且我希望避免每次需要顯示時間時調用Calendar.setTimeZone(Timezone)。謝謝 –

0
TimeZone.setDefault(TimeZone.getTimeZone("GMT+3")); 

這設置了默認時區。隨後對Calendar.getInstance()的調用始終返回,就好像設備在該時區中一樣。

相關問題