如何將GMT格式的NSDate對象轉換爲當前語言環境/設備設置的日期格式?將格林尼治標準時間格式轉換爲基於語言環境的格式
例如,如果設備在美國和PDT時區,那麼我想將GMT時間轉換爲其等效的PDT時間。
如何將GMT格式的NSDate對象轉換爲當前語言環境/設備設置的日期格式?將格林尼治標準時間格式轉換爲基於語言環境的格式
例如,如果設備在美國和PDT時區,那麼我想將GMT時間轉換爲其等效的PDT時間。
只需使用NSDate
方法descriptionWithCalendarFormat:timeZone:locale:
傳入適當的時區即可。如果您只使用description
方法,您可以在當前時區獲得日期/時間(因此如果設備設置爲PDT,則時間將在PDT中)。
嚴格來說,你不能轉換一個NSDate
至另一時區,因爲NSDate
沒有時區的任何概念。對象只是在(絕對)時間內表示一個點,而不考慮時區。
無論何時您想向用戶顯示日期,您都應該創建一個NSDateFormatter
。默認情況下,它會自動在用戶的時區中顯示時間。您可以用-[NSDateFormatter setTimeZone:]
覆蓋此項。
好的。得到它了。一個問題 - 我們如何知道設備的當前時區? – Abhinav 2011-04-06 15:26:45
請參閱'NSTimeZone'的'+ systemTimeZone','+ defaultTimeZone'和'+ localTimeZone'。 – 2011-04-06 15:31:25