希望这只是一个快速的,我错过了一些简单的......
我有一个NSDateFormatter,我用它将字符串 2011-11-10 转换为Date对象。
NSDateFormatter *fmtDate = [[NSDateFormatter alloc] init];
[fmtDate setDateFormat:@"YYYY-MM-DD"];
// input of 2011-11-10, output of 2011-01-10 00:00:00 +0000
[appointment setDate:[fmtDate dateFromString:
[tempAppointment objectForKey:@"date"]
]];
NSDateFormatter的返回存储在managedObjectContext中。我的问题是dateFormatter将日期返回为 2011-01-10 00:00:00 +0000
为什么从Nobvember减少到1月?它保留了一年又一天的好,但不是一个月。
我是否需要包含存储日期的时间?或者它与我设置的格式有关吗?
答案 0 :(得分:2)
在“使用格式字符串指定自定义格式”部分中,使用格式@“yyyy-MM-dd”获取指定here的格式。它有一个例子,并将YYYY列为常见错误。
答案 1 :(得分:1)
使用YYYY,您的日期格式字符串不正确。试试yyyy-M-d或yyyy-MM-dd
NSString *dateString = @"2011-11-10";
NSDateFormatter *fmtDate = [[NSDateFormatter alloc] init];
[fmtDate setDateFormat:@"yyyy-M-d"];
NSDate *date = [fmtDate dateFromString:dateString];
NSLog(@"date: %@", date);
输出:
2011-11-10 20:01:40.638 Craplet[81514:707] date: 2011-11-10 05:00:00 +0000
请参阅:
http://unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns