我有以下代码可以将NSString
转换为NSdate
:
NSString *dateStr = self.currentElement;
NSLog(@"Raw date string: %@", dateStr);
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy"];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"%@", date);
产生以下输出:
Raw date string: 7/8/1806 12:00:00 AM
(null)
在我使用*date
设置后,我不确定为什么null
仍然是dateFromString
。会导致这种情况的原因是什么?
编辑:在查看重复的问题后,我将代码更改为以下内容:
NSString *dateStr = self.currentElement;
NSLog(@"Raw date string: %@", dateStr);
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *date = [dateFormat dateFromString:dateStr];
NSLog(@"%@", date);
现在产生以下输出:
Raw date string: 7/8/1806 12:00:00 AM
1806-07-08 04:56:02 +0000
为什么NSdate
打印不正确,即使它使用与我刚刚用来制作完全相同的NSDateFormatter
?