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"]];