日期格式化程序iPhone问题


NSLog(@"%@", self.departDate);
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MM/dd/yyyy"];
NSLog(@"%@", [dateFormat stringFromDate:self.departDate]);
[dateFormat release];

所以我有这个代码,它在控制台中返回这个:

2011-06-09 00:00:00 +0000
06/08/2011

你知道为什么会这样吗?正如你所看到的,我的self.partDate对象返回2011-06-09作为它的日期。当我尝试使用日期格式化程序进行转换时,我会损失一天的WTF?

第一个日志对应于GMT日期。然而,当您创建一个NSDateFormatter实例时,它将有一个默认时区设置为用户的时区,我猜它可能在格林尼治以西的某个地方。如果你想让时间保持在GMT,你必须添加这一行,

[dateFormat setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];

最新更新