我已经坐了一段时间了。我总能弄清楚我在做什么错。

 NSString * dateString = @"2011-11-21 13:00";
 NSDateFormatter *serverDateFormatter = [[NSDateFormatter alloc] init];
 [serverDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
 NSDate *serverDate = [serverDateFormatter dateFromString:dateString];

 NSLog(@"%@", serverDate);


输出:


  2011-11-21 12:00:00 +0000


为什么13:00转换为12:00?我究竟做错了什么?

最佳答案

您需要设置时区,例如

NSString * dateString = @"2011-11-21 23:20";
NSDateFormatter *serverDateFormatter = [[NSDateFormatter alloc] init];
[serverDateFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[serverDateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSDate *serverDate = [serverDateFormatter dateFromString:dateString];
NSLog(@"%@", serverDate);


输出:

2011-11-23 14:22:10.924 xxx [23235:207] 2011-11-21 23:20:00 +0000

10-07 22:45