解析一组日期时我有一个错误

时间:2014-02-22 04:25:42

标签: objective-c cocoa nsdateformatter foundation

我有一个包含900多个字符串对象的数组...

当我将这个字符串格式化为日期时,有1个日期无法格式化,给我一个空值......

我已经在另一个空白的Xcode项目中进行了测试,它也被错误地发现了......

任何人都可以查看我的机器或Xcode是否有错误吗?日期是02/11/2004(年/月/日)。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd/MM/yyyy"];    
NSLog([NSString stringWithFormat:@"%@", [formatter dateFromString:@"02/11/2004"]]);

1 个答案:

答案 0 :(得分:1)

您正在转换日期而未指定时区,因此假定您的本地时区。经过一番研究猜测你在巴西圣保罗时区,Campo Grande或Cuiba - 2004年11月2日,那些地方的夏令时发生了变化,0000在时间跳到0100时不存在。

如果您刚好在日期转换之后,您可以将时区设置为UTC(没有夏令时),请添加:

formatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"];

并且您不会在该日期获得null