【发布时间】:2023-04-04 18:34:01
【问题描述】:
我想将时区显示为“IST”、“EST”等。 这似乎很简单,但有一个问题。当我使用以下代码时:
let timeZone = TimeZone.current.abbreviation()
对于印度,我得到“GMT+5:30”,但对于多伦多,我得到“EDT”。 请帮忙,或者让我知道其他方式来显示此类缩写。
编辑 1
我想出了一个解决方法,但有时我会遇到一些奇怪的时区:
func getTimeZoneAbbrevation() -> String {
var returnTimeZone = ""
let timezone = TimeZone.current.identifier
let dict = TimeZone.abbreviationDictionary
for (key,value) in dict {
if value == timezone {
returnTimeZone = key
break
}
}
if returnTimeZone == "" {
if let timezone = NSTimeZone.default.abbreviation() {
returnTimeZone = timezone
}
}
return returnTimeZone
}
【问题讨论】:
-
@kamaldeepsinghbhatia 是的,我已经检查过了,检查我的编辑 1,我已经在我的函数中实现了该代码,但问题是,对于多伦多,它返回我“美国/多伦多”, abbreviationDictionary 中没有。
-
请注意,您现在应该收到多伦多的
"EDT",因为那是当前时区的缩写。他们目前处于东部夏令时间。