2013-03-10 77 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生效时获得了