我一直试图从字符串中获取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'。
我似乎犯了一个愚蠢的错误。任何帮助都非常感谢。
答案 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];
这对我有用。