这真的很奇怪,它只存在于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"
,你的报价是错误的,一定不能编译。所以你是怎么得到输出的!!