【发布时间】:2013-02-13 01:58:13
【问题描述】:
我使用相同的、未修改的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 并使用相同的日期格式化程序对生成的日期进行编码,以避免在格式化日期时出现任何人为错误。有没有可靠的方法从人类可读的日期字符串中获取日期对象?
【问题讨论】:
-
我真的不关心时区,大部分日期都离我很远。它似乎与选择一月份的日期有关,而不是我实际选择的日期。 1 月 5 日仍然是 1 月 5 日,但 9 月、10 月等 - 成为 1 月的其他日期。真的很奇怪。
标签: ios nsdate nsdateformatter