init]过去一小时返回日期?

时间:2010-10-08 11:14:04

标签: iphone objective-c datetime nsdate nslog

当我打电话

NSDate *now = [[NSDate alloc] init]; 

为了获得当前的日期和时间,请查看:

NSLog(@"Date now: %@", now);

输出的日期是过去一小时。

  

2010-10-08 12:04:38.227   MiniBf [1326:207]现在:2010-10-08   格林威治标准时间11:04:38

我的时区可能在某处错误设置了吗?

谢谢!

迈克尔

4 个答案:

答案 0 :(得分:1)

我已经在iOS 4.1上运行的DatePicker上看到了这种行为,而在iOS 4.0及之前它没有发生。我无法确认它实际上是同一个错误。

但我建议您通过在<上运行该代码来检查是否与Apple bug确认日期/夏令时/ 4.1有关。 4.1。然后,您需要决定是否修复特定版本/日期的修复程序或等待SDK的下一个版本修复它而不支持4.1设备...

我正在谈论的错误我相信只会在夏季时间(2010年3月28日 - 10月31日)内通过日期时发生

答案 1 :(得分:0)

使用NSDate * now = [NSDate date];

我正在使用它并给我完美的结果。

答案 2 :(得分:0)

也许你的iPhone模拟器中的时区错了。按主页按钮,转到settings.app并更正;)

答案 3 :(得分:0)

使用NSDateFormatter本地化日期:

NSLog(@"%@",[NSDateFormatter localizedStringFromDate:[NSDate date] dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterShortStyle]);