0
我對這兩個NSDate對象如何知道它們在哪個時區有些困惑。我的印象是NSDate對象只存儲一個時間點並且沒有關於時區的信息。NSDate如何知道它是TimeZone?
我創建和記錄兩個日期是這樣的:
NSString* timeString = @"6:04 PM";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];
[dateFormatter setDateFormat:@"h:mm a"];
NSDate *time = [dateFormatter dateFromString:timeString];
NSDateFormatter *currentFormatter = [[NSDateFormatter alloc] init];
[currentFormatter setTimeStyle:NSDateFormatterLongStyle];
NSLog(@"%@", [currentFormatter stringFromDate:time]);
NSLog(@"%@", [currentFormatter stringFromDate:[NSDate date]]);
這將產生輸出:
18:04:00 GMT
11:12:36 BST
它是如何知道的第一次約會是GMT,第二個是BST?
(這是英國夏令時間在這裏。你的情況可能在這方面會發生變化)
你確定這是給我們這個輸出的代碼嗎?我用你的代碼獲得了與時區相同的輸出。 –
是的,iOS 6在iPhone 6s上運行,我的區域設置在英國,時區設置爲倫敦和24小時時間。 Xcode 7.0.1。 –
爲了澄清,我使用的是iOS 9.0.1。 –