NSDate问题..时间不正确?

时间:2012-11-24 07:33:59

标签: objective-c ios xcode nsdate

  

可能重复:
  NSDate not returning correct date

当我尝试显示当前时间时:     NSDate * mydate = [NSDate date];

我得到了这个结果:

2012-11-24 09:27:13.194 myApp[5284:c07] mydate = 2012-11-24 07:27:13 +0000

虽然模拟器时间和OS X时间不同,但时间已经过了两个小时。我该如何解决这个问题?提前谢谢..

1 个答案:

答案 0 :(得分:2)

您需要使用NSDateFormatter打印日期。 NSDate没有附加任何时区信息。确保将时区附加到日期格式化程序。

NSDate* now = [NSDate date];

// GET A DATE FORMATTER AND SET THE TIMEZONE
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.timeZone = [NSTimeZone systemTimeZone];

// CHANGE FORMAT TO SUIT YOUR NEEDS
[df setDateStyle: NSDateFormatterFullStyle]; 
[df setTimeStyle: NSDateFormatterFullStyle];

// GET YOUR FORMATTED DATE STRING
NSString *dateString = [df stringFromDate: now];