使用格式@" MMM dd'' YY"解析NSDate。

时间:2015-03-13 20:50:50

标签: ios objective-c string parsing nsdate

我有一个日期字符串,如下所示: 3月13日' 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? 感谢^^

2 个答案:

答案 0 :(得分:2)

YY是基于星期的日历,用于某些非格里高利历的日历。您通常应该使用yy代替。请参阅unicode reference of valid date pattern

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

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

答案 1 :(得分:0)

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

        [df setDateFormat:@"MMM d ''yy"];

大写Y记录为“年份(基于”年度周“的日历)。”并提到“可能并不总是与日历年相同”。看到: http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns