-1

2014 年 12 月 31 日的日期错误。示例代码:

NSDateFormatter *dateF =[[NSDateFormatter alloc] init];
NSLocale *enUSPOSIXLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[dateF setLocale:enUSPOSIXLocale];
[dateF setDateFormat:@"MM/DD/yyyy"];

NSDate *date = [dateF dateFromString:@"12/31/2014"];
NSLog(@"Date for locale %@: %@",
      [[dateF locale] localeIdentifier], [dateF stringFromDate:date]);
date = [dateF dateFromString:@"01/01/2013"];
NSLog(@"Date for locale %@: %@",
      [[dateF locale] localeIdentifier], [dateF stringFromDate:date]);

返回的结果是:

Date for locale en_US_POSIX: 12/335/2014
Date for locale en_US_POSIX: 01/01/2013

这带来了许多问题。1) 我如何获得正确的日期?2)一个月怎么会有335天?

谢谢大家,

4

1 回答 1

0

“D”是一年中的一天,你想要“d”一个月的一天。

你要:

[dateF setDateFormat:@"MM/dd/yyyy"];

请参阅:ICU格式化日期和时间网页。

另一个常见的错误是使用“Y”,即“一年中的一周”而不是“y”年。

于 2013-11-14T21:41:38.977 回答