IOS 9.3.5的时区问题



这真的很奇怪,它只存在于iOS 9.3.5, ios8月的最新版本。让我们深入讨论这个问题。

我通常使用以下命令来获取我的时区日期:

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 timezone为+02:00

在iOS 9.3.5中时区是+03:00

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

你在打印什么?如果您打印日期,那么它将始终显示+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",你的报价是错误的,一定不能编译。所以你是怎么得到输出的!!

相关内容

  • 没有找到相关文章

最新更新