2010-08-05 71 views
1

我一直在瀏覽Apple文檔一段時間,但還沒有看到從不同時區獲取當前日期的方法。基本上,我需要在美國中部標準時間(CST)中獲得當前日期。我很確定這是NSDate和NSDateFormatter的組合,通過設置時區。我相信這是一件容易的事情,但我一直無法找出最好的辦法。Objective-C NSDate - 如何從不同時區獲取當前日期

有什麼我在這裏失蹤?

回答

4

如果你只想顯示當前時間給定區域你需要設置NSDateFormatter所在時區屬性:

[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CST"]]; 

如果你想包含時間,從給定區域需要設置默認時區前一個NSDate對象檢索該日期:

NSDate* date = [NSDate date]; 
NSLog(@"%@", [date description]); 

[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CST"]]; 
NSDate* nDate = [NSDate date]; 
NSLog(@"%@", [nDate description]); 

//output 
2010-08-05 12:32:38 +0300 
2010-08-05 04:32:38 -0500