为什么这个 dateFormatter 记录(空)

Why does this dateFormatter log (null)

我正在尝试使用以下代码将 nsstring 转换为日期:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"yyyy-mm-dd hh:mm:ss";
NSDate *date = [dateFormatter dateFromString:quota.datetime];

字符串 quota.datetime 如下所示:

2016-02-17 22:00:00

但是,当我使用 NSLog 日期时,我得到 (null)。为什么?

yyyy - 4 位数年份。
mm - 两位数分钟。嗯。您在月份和分钟内都使用它。那是不对的。 2 位数月份为 MM.
dd - 两位数的日期。
hh - 2 位 12 小时制。嗯。您的日期字符串采用 24 小时制。规范说需要 HH.
ss - 两位数秒。

因此,根据查看文档和您希望解析的日期字符串,您需要以下格式:

yyyy-MM-dd HH:mm:ss

这样试试。这对你有帮助。

NSDateFormatter *formatter;

if (!formatter){
     formatter= [[NSDateFormatter alloc] init];
     [formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];//2015-09-04 09:34:00
 }

 NSDate *date = [formatter dateFromString:@"2015-09-04 09:34:00"];   

以下是日期格式字符串中常用的说明符:

y = year
Q = quarter
M = month
w = week of year
W = week of month
d = day of the month
D = day of year
E = day of week
a = period (AM or PM)
h = hour (1-12)
H = hour (0-23)
m = minute
s = second

关注此 link 以了解更多关于 DateForamtter and Date Format 的信息。