【发布时间】:2019-01-04 02:14:57
【问题描述】:
如何从用户的 TimeZone 获取字符串,例如“Pacific/Auckland”?
我可以得到“NZST”的缩写
TimeZone.current.abbreviation()
但这是我需要的全名,如果我能得到的话。
【问题讨论】:
-
您查看过
TimeZone的文档吗?有一个非常明显的属性。
如何从用户的 TimeZone 获取字符串,例如“Pacific/Auckland”?
我可以得到“NZST”的缩写
TimeZone.current.abbreviation()
但这是我需要的全名,如果我能得到的话。
【问题讨论】:
TimeZone 的文档吗?有一个非常明显的属性。
其中一个应该适合你。
timeZone = TimeZone(abbreviation: "EST")
print(timeZone) // "some(America/New_York (current))\n"
print(timeZone.abbreviation()) // "Optional("EDT")\n"
print(timeZone.description) // "America/New_York (current)\n"
print(timeZone.identifier) // "America/New_York\n"
我相信您正在寻找最后一个。
【讨论】:
DateFormatter 的意义何在?您只需要TimeZone。问题是询问用户当前的时区。
let timeZone = TimeZone(abbreviation: "NZST")
let identifier = timeZone?.identifier
这就是你要找的。p>
【讨论】:
试着写...
TimeZone.current.localizedName(for: .standard, locale: Locale.current)
在第一个参数中,您可以选择不同的名称样式。我尝试过的仅有的两个是 .generic 和 .standard。
我在这里找到了答案:How to get a user's time zone?
希望对你有帮助。
【讨论】: