我使用相同的、未经修改NSDateFormatter
的方法对字符串中的日期进行编码和解码。将日期编码为字符串可以正常工作,但奇怪的是,将其取回效果不佳。这甚至都不是时区问题,因为大多数日期都是几个月的时间。我有:
NSDateFormatter *_calibrationDateFormat = [[NSDateFormatter alloc] init];
[_calibrationDateFormat setDateFormat:@"EEEE MMM d, YYYY"];
NSString *text = @"Thursday Dec 6, 2018";
NSLog(@"%@\n%@", text, [_calibrationDateFormat dateFromString:text]);
输出:
Monday Aug 12, 2013
2012-12-31 05:00:00 +0000
其他日期的更多尝试:
Friday Apr 12, 2013
2013-01-04 05:00:00 +0000
Saturday Oct 26, 2013
2013-01-05 05:00:00 +0000
Thursday Sep 10, 2015
2015-01-01 05:00:00 +0000
Thursday Jan 5, 2017
2017-01-05 05:00:00 +0000
我真的不知道它解码这些日期的逻辑。我也尝试了不同的格式,例如删除星期几,或者使用完整的月份名称而不是 3 个字母的缩写,但结果同样令人困惑。请注意,对于我的测试,我使用了 UIDatePicker 并使用相同的日期格式化程序对生成的日期进行编码,以避免在格式化日期时出现任何人为错误。有没有可靠的方法从人类可读的日期字符串中获取日期对象?