所有
我有NSDateFormatter
,似乎没有返回正确的月份。以下是我的代码:
- (NSDate *)stringToDate
{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"YYYY-MM-DD"];
return [df dateFromString:self];
}
+ (NSString *)dateToString:(NSDate *)date
{
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"MMMM DD, YYYY"];
return [df stringFromDate:date];
}
+ (NSString *)formatLongDate:(NSString *)string
{
NSDate *date = [string stringToDate];
return [NSString dateToString:date];
}
当我通过[NSString formatLongDate:@"2013-10-09"]
时,结果是 2013年1月9日而不是 2013年10月9日。我迷失了为什么会发生这种情况。有没有人有想法?
答案 0 :(得分:6)
我认为问题是DD
是“一年中的一天”而不是“一天中的某一天” - 而YYYY
是“一年”而不仅仅是“一年”。 (周年基本上很奇怪,如果可能的话,最好忽略它们。)
请尝试使用“yyyy-MM-dd”和“MMMM dd,yyyy”的格式。在格式字符串中包含绝对精确非常重要,包括套管。如有疑问,请检查!请按照Data Formatting Guide页面上的链接(所用的确切Unicode技术标准版本取决于您使用的iOS版本)了解详细信息。