NSDateFormatter 无法识别日期

Posted

技术标签:

【中文标题】NSDateFormatter 无法识别日期【英文标题】:NSDateFormatter not recognizing dates 【发布时间】:2014-02-28 11:44:27 【问题描述】:

我有一个包含一些日期字符串的数组。我正在使用 NSDateFormatter,但问题是它可以识别某些日期而无法识别其他日期,而它们都具有相同的格式!

例如它的格式:Sat, 01 Feb 2014 08:44:00 +0430

但在以下情况下返回 null:2014 年 1 月 29 日星期三 17:40:00 +0430

这是我使用的代码:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EEE, dd MMM yyyy hh:mm:ss xx"];
NSDate *date = [dateFormat dateFromString:dateInput];

【问题讨论】:

您使用的小时格式是 0-12 格式,而不是 0-24。 【参考方案1】:

使用这种日期格式[dateFormat setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss xx"];

【讨论】:

【参考方案2】:
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss xx"];
NSDate *date = [dateFormat dateFromString:dateInput];

注意:

HH 用 24 小时格式表示

hh 用 12 小时格式表示

【讨论】:

【参考方案3】:

试试这个

[dateFormat setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss xx"];

因为,HH 是适合您标准的 24 小时格式语法。

【讨论】:

以上是关于NSDateFormatter 无法识别日期的主要内容,如果未能解决你的问题,请参考以下文章

NSDateFormatter 无法解析德语月份 March/June/Jul 的三个字母缩写

将事件添加到日历时,NSDateFormatter 未正确格式化日期

NSDateFormatter 无法设置 setTimeZone

使用 NSDateFormatter 管理日期

NSDateFormatter 以一天为单位返回一个日期

使用 NSDateFormatter 快速格式化日期