我想将以下 NSString
转换为 NSDate
:@"2013-04-01T22:00:00Z"
我正在使用以下代码:
NSString *dateString = @"2013-04-01T22:00:00Z";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"];
NSDate *theDate = [dateFormatter dateFromString:dateString];
当我打印 theDate
时,我得到以下答案:2013-04-01 20:00:00 +0000
现在我想知道为什么时间是 20:00 而不是 22:00,你有什么想法吗?
谢谢!
最佳答案
因为您的 dateFormat 没有指定时区,所以 NSDateFormatter
使用您本地的时区。您必须自己设置时区。字符串中的 Z 表示 GMT。
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
关于objective-c - NSDateFormatter 正在移动 2 小时的日期,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10765654/