我必須從objective-c中的NSString初始化一個NSDate對象。我不喜歡這樣寫道:爲什麼我的時區不能保存到我的NSDate中?
NSString *dateString = [[webSentence child:@"DateTime"].text stringByReplacingOccurrencesOfString:@"T" withString:@" "];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-mm-dd HH:mm:ss"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"Europe/Budapest"]];
NSDate *date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:dateString];
例如:當我和字符串值試試@「2011-01-02 17點49分54秒」我得到一個NSDate 2011-01-02 16點49分54秒+ 0000。正如你所看到的,兩個值之間有一個小時的差異。 NSDate有一個錯誤的值,它應該與我在dateFormatter中設置的時區中的字符串中定義的值完全相同。它似乎使用我的日期定義它的字符串作爲UTC,即使我將其時區設置爲「歐洲/布達佩斯」。我該如何解決這個問題?
謝謝!
非常感謝! – Tom 2012-01-15 01:11:24
那麼這意味着如果我有一個時區,我不能將日期存儲到具有該時區的NSDate對象中?我將不得不在顯示的時候在其他地方和用戶存儲時區? – Nil 2016-06-15 07:41:17