dateFromString返回nil

时间:2018-03-27 10:34:50

标签: ios objective-c nsdateformatter

我有一个将NSString转换为NSDate的函数。

+ (NSDate *)getNSDateFromString:(NSString *)strDate andFormat:(NSString *)format{
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat : format];
    NSString *stringTime = strDate;
    NSDate *dateTime = [formatter dateFromString:stringTime];
    return dateTime;
}

strDate的值是“27-Mar-2018 18:28:09”。 格式为“dd-MM-yyyy HH:mm:ss”

该函数返回零值。 请有人帮忙。感谢。

2 个答案:

答案 0 :(得分:6)

将日期格式更改为dd-MMM-yyyy HH:mm:ss

以下是了解日期格式字符串的好参考:Quick Guide to Objective-C DateFormatting& Date_Field_Symbol_Table

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

如果您将其与日期组件匹配

27-Mar-2018 18:28:09 = dd-MMM-yyyy HH:mm:ss

其中

27   = dd (date day)
Mar  = MMM (Month)
2018 = yyyy (year)
18   = HH (HH - 24 hours format and hh - 12 hours format)
28   = mm (minutes)
09   = ss (seconds)

答案 1 :(得分:-1)

由于你的日期字符串是" 27-Mar-2018 18:28:09"。格式应为" dd-MMM-yyyy HH:mm:ss"。

将格式从"dd-MM-yyyy HH:mm:ss"更改为"dd-MMM-yyyy HH:mm:ss"