首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >斯威夫特-如何获得NSTimeZone给我“太平洋标准时间”或“山区时间”等?

斯威夫特-如何获得NSTimeZone给我“太平洋标准时间”或“山区时间”等?
EN

Stack Overflow用户
提问于 2021-04-01 02:17:29
回答 1查看 260关注 0票数 1

我使用的API给我起了“美国/温哥华”这样的名字。我用它来构造一个NSTimeZone并得到缩写,但是当我想要“太平洋夏令时间”或"PDT“时,它是"UTC-7”。

我怎样才能进入禁区?而不是危险地带。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-01 03:07:27

您可以使用TimeZone方法localizedName(for: locale:)显示本地化的时区名称。你只需要通过一个名字,风格,夏令或标准。如果您需要缩写,只需通过短夏时制或短标准,如我在本post中所示。

代码语言:javascript
复制
extension TimeZone {
    static let vancouver = TimeZone(identifier: "America/Vancouver")!
    func localizedName(for date: Date = Date()) -> String { localizedName(for: isDaylightSavingTime(for: date) ? .daylightSaving : .standard, locale: .current) ?? "" }
    func localizedNameShort(for date: Date = Date()) -> String { localizedName(for: isDaylightSavingTime(for: date) ? .shortDaylightSaving : .shortStandard, locale: .current) ?? "" }
}

用法:

代码语言:javascript
复制
TimeZone.vancouver.localizedName()        // "Pacific Daylight Time"
TimeZone.vancouver.localizedNameShort()   // "PDT"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66897627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档