无法从字符串中获取日期

时间:2013-11-19 03:03:17

标签: ios7 nsdateformatter

我一直试图从字符串中获取NSDate,但它总是导致nil。

 NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
 [dateFormat setDateFormat:@"yyyy-MMM-dd HH:mm:ss"];
 NSDate* date = [dateFormat dateFromString:string];

我想解析的字符串是'2013-Nov-14 07:39:38'。

我似乎犯了一个愚蠢的错误。任何帮助都非常感谢。

3 个答案:

答案 0 :(得分:1)

您的语法是正确的。可能在您的系统区域设置中,月份字符串不是工作日或/和月份的有效文字。试试吧;

NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];

答案 1 :(得分:0)

您的代码非常适合我。必须是你的字符串初始化的东西。在通过日期格式化程序之前,请确保您的字符串不是nil。

NSString *dateString = @"2013-Nov-14 07:39:38";

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MMM-dd HH:mm:ss"];
NSDate* date = [dateFormat dateFromString:dateString];

NSLog(@"Date: %@", date);

正确显示日期的结果。

答案 2 :(得分:0)

感谢Anna Karenina提示。

将我的本地设置为en_US对我有用。

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MMM-dd HH:mm:ss"];
NSLocale* locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[dateFormat setLocale:locale];
NSDate* date = [dateFormat dateFromString:string];

这对我有用。