Ios 使用格式“@”解析NSDate;MMM dd'';YY“;

Ios 使用格式“@”解析NSDate;MMM dd'';YY“;,ios,objective-c,string,parsing,nsdate,Ios,Objective C,String,Parsing,Nsdate,我有一个日期字符串,如下所示:mar13'15 我找不到正确的方法来解析这个。我尝试了以下方法: NSDateFormatter *df = [[NSDateFormatter alloc] init]; [df setDateFormat:@"MMM dd ''YY"]; //[df setDateFormat:@"MMM dd 'YY"]; //[df setDateFormat:@"MMM dd YY"]; NSDate *date = [df dateFromString:label.t

我有一个日期字符串,如下所示:mar13'15

我找不到正确的方法来解析这个。我尝试了以下方法:

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMM dd ''YY"];
//[df setDateFormat:@"MMM dd 'YY"];
//[df setDateFormat:@"MMM dd YY"];
NSDate *date = [df dateFromString:label.text];
有人知道如何使用setDateFormat吗?
谢谢^ ^

YY
是以周为基础的日历中的年,在一些非公历日历中使用。您通常应该使用
yy
。看

您应该将区域设置设置为
en_US_POSIX
,以确保该日期被解析为英语中的日期。例如,在德语地区,您的转换将失败,因为今天不是
mar13'15
,而是
März 13'15

NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMM dd ''yy"];
[df setLocale:[NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"]];

您使用了错误的年份样式,您需要使用小写y

        [df setDateFormat:@"MMM d ''yy"];
大写字母Y记录为“年(在基于“一年中的一周”的日历中)”,并提到“可能不总是与日历年相同的值”。见:

尝试使用MMM-dd、'yy代替MMM-dd、'yy,使用小写的yy。看见看,它起作用了:-)。Danke提供了详细的答案和现场旁注。有一个小错误;它应为localeWithLocaleIdentifier。