IOS 9.3.5的时区问题

时间:2016-09-01 13:22:11

标签: ios objective-c timezone

它真的很奇怪,它只存在于iOS 9.3.5八月份iOS的最新版本中。深入研究这个问题。

我通常使用以下内容来获取时区日期:

NSDateFormatter *ddFormatter = [[NSDateFormatter alloc] init];
[ddFormatter setDateFormat:@"yyyy-MM-dd HH:mm"];
    
NSTimeZone *timeZoneObject = [NSTimeZone timeZoneWithName:timeZoneString];
[ddFormatter setTimeZone:@"Africa/Cairo"];
NSDate *date = [ddFormatter dateFromString:dateString];
    
return date;
  

在iOS 9.3.3中,时区是+02:00

     

在iOS 9.3.5中,时区是+03:00

为什么在iOS的最后一个版本中返回时区错误,我可以做什么修复,时区只是一个例子,我动态地使用它?

1 个答案:

答案 0 :(得分:0)

你打印什么?如果您打印日期,它将始终显示+0000,因为默认日期将以UTC或GMT返回,我的意思是不是+/-任何小时。

如果您正在直接打印时区,

  NSTimeZone *timeZoneObject = [NSTimeZone timeZoneWithName:@"Africa/Cairo"];

NSLog(@"timezone : %@",timeZoneObject);

然后必须打印:Africa/Cairo (GMT+2) offset 7200

那么你在控制台打印的内容如timezone is +02:00那样输出,你必须犯一些错误。

此字符串@“Africa/Cairo”也是错误的。它应该是@"Africa/Cairo",你的引号是错误的,不能编译。你怎么得到输出!!!