Swift iOS时区作为字符串?

3

如何从用户的时区获取字符串“Pacific/Auckland”?

我可以使用以下代码获取“NZST”缩写:

TimeZone.current.abbreviation()

但我需要的是完整的名称,如果能够获取就更好了。


1
你看过 TimeZone 的文档吗?有一个非常明显的属性。 - rmaddy
3个回答

3
let timeZone = TimeZone(abbreviation: "NZST")
let identifier = timeZone?.identifier

这就是你要找的内容。

2
以下任意一种方法都可以帮助您解决问题。
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"

我相信你正在寻找最后一个。

1
这里 DateFormatter 的作用是什么?你只需要 TimeZone。而问题是在询问用户当前的时区。 - rmaddy
没错,它只是在我的游乐场里出现了。我会把它移除。 - Daniel Lyon

0

尝试编写...

TimeZone.current.localizedName(for: .standard, locale: Locale.current)

在第一个参数中,您可以选择不同的名称样式。我尝试过的只有 .generic 和 .standard 两种。
我在这里找到了答案:如何获取用户的时区? 希望这能帮到您。

1
这不是所请求的结果。 - rmaddy
我的错。对于HenryRootTwo的“NZST”,结果应该是“新西兰标准时间”,而不是“太平洋/奥克兰”。我喜欢你使用了标识符属性,但我认为他需要使用TimeZone.current.identifier,因为在他的原始代码中,他试图检索的不是特定的时区,而是用户的时区。 - Robot Kate

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接