NSDateFormatter没有给出预期的结果

时间:2014-06-26 09:36:25

标签: ios objective-c nsdateformatter

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd MMM YYYY"];
NSLog(@"formatted date %@",[formatter dateFromString:@"14 Oct 2013"]);

我正在尝试格式化2013年10月14日的日期,以获取NSDate对象。但由于某种原因,它没有按预期格式化。 这是我在控制台上登录后得到的日期对象,

formatted date 2012-12-22 18:30:00 +0000

我在这里做错了什么?

1 个答案:

答案 0 :(得分:5)

您应该使用小写yyyy,因为大写的一个表示基于星期的日历年,您应该指定时区:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd MMM yyyy"];
NSTimeZone *gmt = [NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[formatter setTimeZone:gmt];
NSLog(@"formatted date %@",[formatter dateFromString:@"14 Oct 2013"]);