我试图从UTC时间字符串获取NSDate
对象。时间字符串的例子是这样的:从UTC格式的时间字符串获取NSDate
2016-07-29T11:43:55+02:00
我使用NSDateFormatter
并设置酸盐,为:yyyy-MM-dd'T'HH:mm:ss
但是这给了我取不正确的时区。所以上述日期将是:2016-07-29T09:43:55 + 00:00
我该如何保持时区方面?
我曾尝试加入'Z'
到格式化的结束,而是刚刚返回一个零日期。
我试图从UTC时间字符串获取NSDate
对象。时间字符串的例子是这样的:从UTC格式的时间字符串获取NSDate
2016-07-29T11:43:55+02:00
我使用NSDateFormatter
并设置酸盐,为:yyyy-MM-dd'T'HH:mm:ss
但是这给了我取不正确的时区。所以上述日期将是:2016-07-29T09:43:55 + 00:00
我该如何保持时区方面?
我曾尝试加入'Z'
到格式化的结束,而是刚刚返回一个零日期。
试试这个
NSDateFormatter *userFormatter = [[NSDateFormatter alloc] init];
[userFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"];
NSLocale *posix = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"];
[userFormatter setLocale:posix];
NSString *dateConverted = [userFormatter stringFromDate:theDate];
这是行不通的(格式化程序中缺少'T')并且它不回答问题。 – Droppy
感谢社会各界的帮助。解决了这个问题。我的iOS模拟器上的时间是正确的。不过,当我拨打[NSDate date];
时,它显示了当地时间两小时前的一段时间。因此,我在NSDate的格式中看到了'错误'。
这是正确的。 9比当地时间晚两个小时。 – Tander
[转换ISO 8601来的NSDate(http://stackoverflow.com/questions/17558859/convert-iso-8601-to-nsdate) – vadian
您的日期格式是正确的,日期字符串正确地分析,所以有可能的复制你问你是如何检测GMT抵消传入的日期字符串? – Droppy