Iphone NSDateFormatter:如何读取三月的日期

Iphone NSDateFormatter:如何读取三月的日期,iphone,objective-c,ios4,Iphone,Objective C,Ios4,NSDateFormatter可用于从日期字符串构造NSDate实例。 这适用于三月的日期字符串,其中使用MMM MOUNT格式 NSDateFormatter *fmt = [[NSDateFormatter alloc] init]; [fmt setDateFormat:@"dd-MMM-yyyy"]; NSDate *aDate = [fmt dateFromString:dateString]; [fmt release]; 例如,日期字符串值: @“2011年1月29日”工程 @

NSDateFormatter可用于从日期字符串构造NSDate实例。 这适用于三月的日期字符串,其中使用MMM MOUNT格式

NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
[fmt setDateFormat:@"dd-MMM-yyyy"];
NSDate *aDate = [fmt dateFromString:dateString];
[fmt release];
例如,日期字符串值:

  • @“2011年1月29日”工程
  • @“2011年2月4日”工程
  • @“2011年3月20日”不起作用!生成的NSDate实例aDate为零

这是iOS SDK 4.3中的一个错误,还是格式化程序希望三月有不同的缩写?

我无法重现:

NSString *dateString = @"20-Mar-2011";
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
[fmt setDateFormat:@"dd-MMM-yyyy"];
NSDate *aDate = [fmt dateFromString:dateString];
[fmt release];
NSLog(@"date=%@", aDate);
输出:

2011-03-17 22:04:39.798 Untitled[18025:207] date=2011-03-20 04:00:00 +0000

您是否可以将您的语言环境设置为英语以外的语言环境?

是的,这确实是个问题。模拟器上的区域设置为德语,其中March缩写为“Mär”。谢谢