我正在尝试从给定的字符串中获取NSDate:
NSString* dateString = @"March 23 04:00 AM";
NSDateFormatter* firstDateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[firstDateFormatter setDateFormat:@"MMММ dd h:mm a"];
NSLocale *locale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[firstDateFormatter setLocale:locale];
NSDate* date = [firstDateFormatter dateFromString:dateString];
NSLog(@"date:%@", date);
我犯的日期是空的,我犯了错误?
答案 0 :(得分:2)
您设置的日期格式存在问题。根据苹果
中的格式模式
在您的情况下,您需要使用LLLL
而非MMMM
的单月版本。
如果您更改此行,您的代码将正常工作
[firstDateFormatter setDateFormat:@"LLLL dd hh:mm a"];
该标准解释了独立版本如下:
格式和独立之间最重要的区别 对于需要它的语言,表单是一种语法上的区别。对于 例如,许多语言要求没有月份名称 相关的日期编号为基本的主格,而一个月 具有关联日期的姓名应该是不同的 语法形式:genitive,partitive等。另一种常见的类型 格式与独立之间的区别涉及资本化; 但是,这可以单独控制,更精确地使用 第5.19节中描述的元素 ContextTransform Elements。
顺便说一下。阅读this它包含大量信息以及初始化dateformatter的更好方法。
答案 1 :(得分:0)
使用hh
两位数小时:
[firstDateFormatter setDateFormat:@"MMММ dd hh:mm a"];