在我的IOS App中,我有一个时区标识,例如“America / Los_Angeles”,我想获得其缩写“PST”。

我写了以下代码:

NSTimeZone* theTimezone = [NSTimeZone timeZoneWithName:_timezone];
    _timezoneAbbreviation = theTimezone.abbreviation;

我的问题是_timezoneAbbreviation总是返回类似“UTC-x”或“UTC + x”的字符串,而不是适当的缩写。

如果我正在查找NSDictionary返回的[NSTimeZone abbreviations],则其中包含正确的缩写(例如,“America / Los_Angeles”的PST)。

任何想法?

塞巴斯蒂安。

最佳答案

abbreviation方法的结果似乎与语言环境有关。如果我将区域格式设置为“美国”,则您的代码实际上返回“PST”。如果我将区域格式设置为“Germany / German”,它将返回“GMT-8”(在iOS Simulator上测试)。


[theTimezone localizedName:NSTimeZoneNameStyleShortStandard
                    locale:[NSLocale localeWithLocaleIdentifier:@"en_US"]]

给出“PST”,与区域格式无关。

(我知道这只是部分解决方案。它只返回期望的结果
适用于美国时区。但是也许它指出了解决的正确方向
问题。)

10-08 07:20