为什么这个dateFormatter日志(null)

时间:2016-01-26 05:06:25

标签: ios objective-c nsdate

我正在尝试使用以下代码将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)。为什么呢?

2 个答案:

答案 0 :(得分:3)

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

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

yyyy-MM-dd HH:mm:ss

答案 1 :(得分:1)

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

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

请点击此链接了解有关DateForamtter and Date Format的更多信息。