en

hi, it seems you are using microsoft internet explorer. it doesn't match web standard and causes problems browsing this site. please please please use mozilla firefox or google chrome instead. thank you!

zh

哦哦!您正在使用Internet Explorer 瀏覽器,它與我們的網頁標準並不相容,可能會導致畫面顯示不正常。
請改用 Mozilla Firefox 或者 Google Chrome 才能正常瀏覽本網站,謝謝!

10.03.2011

使用 NSTimeZone 取得世界各地時間的方法

下列程式碼將示範,如何利用 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];
}

由於能取得的地點相當多,下圖只是部份的執行結果。








沒有留言:

張貼留言