下列程式碼將示範,如何利用 NSTimeZone 取得世界上已知的時區名稱,並且透過這些名稱來獲得當地時間,如果在系統時間的取得上有任何疑問,可以參考取得 iOS 系統日期與星期的方法一文,其程式碼如下。
//取得目前已知的所有地裡名稱
NSArray *timeZoneNames = [NSTimeZone knownTimeZoneNames];
//取得本地目前時間
NSDate *date = [NSDate date];
for(NSString *name in timeZoneNames) {
NSTimeZone *timezone = [[NSTimeZone alloc] initWithName:name];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
//設定時間格式
[formatter setDateFormat:@"YYYY-MM-d HH:mm:ss"];
//設定時區
[formatter setTimeZone:timezone];
//時間格式正規化並做時區校正
NSString *correctDate = [formatter stringFromDate:date];
NSLog(@"地點:%@ 當地時間:%@",[timezone name], correctDate);
[formatter release];
[timezone release];
}
由於能取得的地點相當多,下圖只是部份的執行結果。
沒有留言:
張貼留言