iOS TimeZone 获取三个字母的缩写
iOS TimeZone get three letter abbreviation
我需要获取名为 'Africa/Nairobi' 的国家/地区的 three/four 字母缩写,我已尝试使用
print(TimeZone(abbreviation: "SAST")?.identifier)
来自 NSTimeZone.abbreviationDictionary
,结果 nil
。
如何获得这个国家 'Africa/Nairobi' 的 three/four 字母缩写。提前致谢
您可以通过以下方法获取完整的标准本地化时区名称。
let timezone:TimeZone = TimeZone.init(identifier: "Africa/Nairobi") ?? TimeZone.current
print(timezone.localizedName(for: .generic, locale: .autoupdatingCurrent))
print(timezone.localizedName(for: .standard, locale: .autoupdatingCurrent))
会给你下面的输出
Optional("East Africa Time")
Optional("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)
会给你输出
EAT
我需要获取名为 'Africa/Nairobi' 的国家/地区的 three/four 字母缩写,我已尝试使用
print(TimeZone(abbreviation: "SAST")?.identifier)
来自 NSTimeZone.abbreviationDictionary
,结果 nil
。
如何获得这个国家 'Africa/Nairobi' 的 three/four 字母缩写。提前致谢
您可以通过以下方法获取完整的标准本地化时区名称。
let timezone:TimeZone = TimeZone.init(identifier: "Africa/Nairobi") ?? TimeZone.current
print(timezone.localizedName(for: .generic, locale: .autoupdatingCurrent))
print(timezone.localizedName(for: .standard, locale: .autoupdatingCurrent))
会给你下面的输出
Optional("East Africa Time")
Optional("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)
会给你输出
EAT