【发布时间】:2013-02-25 23:42:14
【问题描述】:
我正在尝试使用以下代码将字符串转换为 NSDate:
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。
有什么想法吗?
【问题讨论】:
-
不确定如何解决,但问题可能是由于夏令时
-
是的,就是这样。将日期更改为 9 日或 11 日,问题就会消失...
-
在美国,没有 2013 年 3 月 10 日凌晨 2 点这样的时间。由于夏令时,时间从 1:59:59 变为 3:00:00。同样的问题也会出现在其他地区,但在其他日期/时间。
-
旁注 - 无需将日期格式化程序的时区设置为本地时区。这是默认设置的。
-
@maddy 很棒的评论!你应该给出一个答案。
标签: iphone ios nsdateformatter dst