2013-03-10 58 views
9

我嘗試使用下面的代碼將一個字符串到一個NSDate轉換:NSDateFormatter返回nil爲凌晨2點小時

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 
NSDate *date= [dateFormatter dateFromString:@"2013-03-10T02:00:00"]; 

它工作得很好,除了02:00:00所有時間,如上圖所示,返回nil。

任何想法?

+4

不知道如何解決它,但問題可能是由於夏令時 – Nabou 2013-03-10 21:21:52

+0

是的,就是這樣。將日期更改爲9日或11日,問題消失... – 2013-03-10 21:24:49

+18

在美國,2013年3月10日上午2點沒有這樣的事情。時間從1:59:59到3:00:00到期節約一天的光照時間。同樣的問題會出現在其他地區,但在其他日期/時間也會出現。 – rmaddy 2013-03-10 21:25:03

回答

1

這是因爲夏令時發生在美國10日2013

系統時間直接從凌晨1:59。跳到凌晨3:00三月..
你失去了的小時,你已經在11月份當DST生效時獲得了

相關問題