NSDateFormatter错误的日期

时间:2013-10-01 17:20:51

标签: ios nsdateformatter

就像

一样简单
     NSDateFormatter *df  = [[NSDateFormatter alloc] init];
    [df setDateFormat:@"dd/MM/yyyy"];
     NSLog(@"Current date in event %@ %@",currentDate,[df stringFromDate:currentDate]);

但是在日志中

    Current date in event 2013-10-01 22:00:00 +0000 02/10/2013

为什么?

1 个答案:

答案 0 :(得分:3)

当您记录NSDate时,它始终以UTC时间打印。当您使用stringFromDate:时,除非您更改日期格式化程序的时区,否则您将获得当地时间的日期。

在这种情况下,您所处的时区比UTC早两个小时(假设您在意大利)。

由于NSDate对象是2013年10月1日22:00 UTC,因此与UTC + 2的2013年10月2日午夜相同。这就是为什么你看到10月2日显示的字符串。

这是另一种看待它的方式。你没有看到1天的差异。由于您的时区,您实际上看到了2小时的差异。从午夜到0200时间,您将看到看起来是1天的差异。