2014-05-19 48 views
0

我写了下面的代码将NSString转换为NSDate。NSString到NSDate转换错误

[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4]; 
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    //[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehaviorDefault]; 
    [dateFormatter setDateFormat:@"dd/MM/yyyy"]; 
    NSDate *date = [[NSDate alloc] init]; 

    NSLog(@"NSDate is %@", _pickUpDao.pickupDate); 

    date = [dateFormatter dateFromString:_pickUpDao.pickupDate]; 



2014-05-19 14:07:45.095 ProjectName[3992:70b] NSDate is 5/20/2014 

但我得到以下错误

-[__NSCFCalendar components:fromDate:]: date cannot be nil 

我是说真的,你觉得这是什么操作应该用零日期是什么意思? 现在已经避免了一个例外。这些错误中的一部分将会与此投诉一起报告,然后进一步的违规行为将会无声无息地执行无效的任何结果。

+0

你的字符串是什么? –

+0

2014-05-19 14:07:45.095 ProjectName [3992:70b] NSDate是5/20/2014 –

+0

这是NSString, –

回答

1

我想,代码需要20个月的地方。 “20”不能是一个月。尝试将日期格式更改为@"MM/dd/yyyy"

[NSDateFormatter setDefaultFormatterBehavior:NSDateFormatterBehavior10_4]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"MM/dd/yyyy"]; 
NSDate *date = [[NSDate alloc] init]; 

NSLog(@"NSDate is %@", _pickUpDao.pickupDate); 

date = [dateFormatter dateFromString:_pickUpDao.pickupDate];