iOS TimeZone获得三个字母的缩写

时间:2019-10-23 12:35:23

标签: ios timezone nsdate nstimezone

我需要为这个叫做'Africa / Nairobi'的国家/地区输入三/四个字母的缩写,

print(TimeZone(abbreviation: "SAST")?.identifier)来自NSTimeZone.abbreviationDictionary,结果nil

如何获取该国家(非洲/内罗毕)的三四个字母缩写。。在此先感谢

1 个答案:

答案 0 :(得分:2)

您可以通过以下方法获得时区的完整标准本地化名称。

let timezone:TimeZone = TimeZone.init(identifier: "Africa/Nairobi") ?? TimeZone.current
print(timezone.localizedName(for: .generic, locale: .autoupdatingCurrent))
print(timezone.localizedName(for: .standard, locale: .autoupdatingCurrent))

将为您提供以下输出

  

可选(“东非时间”)

     

可选(“东非时间”)

我认为,通过拆分和组合字符串

,您很容易从East Africa Time获得EAT。
let fullName = timezone.localizedName(for: .standard, locale: .autoupdatingCurrent) ?? ""
var result = ""
fullName.enumerateSubstrings(in: fullName.startIndex..<fullName.endIndex, options: .byWords) { (substring, _, _, _) in
    if let substring = substring { result += substring.prefix(1) }
}
print(result)

会把你放出来