当我打电话给NSTimeZone’s的缩写方法它返回GMT-07:00
。然后,当我使用此值查找时区名称或(time zone identifier)时,它将返回nil
。如何将时区偏移缩写转换为官方时区标识符?
我需要检索官方time zone identifier,例如America/Los_Angeles
。因此,如何将时区偏移缩写(例如,GMT-07:00
)转换为官方时区标识?
这里是我的代码:
NSTimeZone* localTimeZone = [NSTimeZone localTimeZone];
NSString* localAbbreviation = [localTimeZone abbreviation];
NSDictionary* abbreviationDictionary = [NSTimeZone abbreviationDictionary];
NSString* timeZoneID =
[abbreviationDictionary objectForKey:localAbbreviation]; //should return 'America/Los_Angeles' if the abbreviation is ‘PDT’
这是不可能在我看来。有超过24个时区。时区偏移到实际时区的确切映射是不可能的。 –
顺便说一句,在我的语言环境/位置调用'[[NSTimeZone localTimeZone]缩写]''返回'@“CEST”'而不是数字偏移量。 –
感谢Ole,我得到GMT-07:00,这是一个无效的本地时区缩写。 – johnnieb