seb*_*ien 3 timezone cocoa-touch ios
在我的IOS应用程序中,我有一个像"America/Los_Angeles"这样的时区,我希望得到它的缩写"PST".
我写了以下代码:
NSTimeZone* theTimezone = [NSTimeZone timeZoneWithName:_timezone];
_timezoneAbbreviation = theTimezone.abbreviation;
Run Code Online (Sandbox Code Playgroud)
我的问题是_timezoneAbbreviation返回总是一个字符串,如"UTC-x"或"UTC + x"而不是相应的缩写.
如果我查看NSDictionary返回的[NSTimeZone abbreviations]它包含正确的缩写(例如PST为"America/Los_Angeles").
任何的想法?
塞巴斯蒂安.
该abbreviation方法的结果似乎取决于语言环境.如果我将区域格式设置为"美国",那么您的代码实际上返回"PST".如果我将区域格式设置为"德国/德国",则返回"GMT-8"(在iOS模拟器上测试).
但
[theTimezone localizedName:NSTimeZoneNameStyleShortStandard
locale:[NSLocale localeWithLocaleIdentifier:@"en_US"]]
Run Code Online (Sandbox Code Playgroud)
给出"PST",独立于区域格式.
(我知道这只是一个部分解决方案.它仅为美国时区返回所需的结果.但也许它指向解决问题的正确方向.)