我使用的API给我起了“美国/温哥华”这样的名字。我用它来构造一个NSTimeZone并得到缩写,但是当我想要“太平洋夏令时间”或"PDT“时,它是"UTC-7”。
我怎样才能进入禁区?而不是危险地带。
发布于 2021-04-01 03:07:27
您可以使用TimeZone方法localizedName(for: locale:)显示本地化的时区名称。你只需要通过一个名字,风格,夏令或标准。如果您需要缩写,只需通过短夏时制或短标准,如我在本post中所示。
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) ?? "" }
}用法:
TimeZone.vancouver.localizedName() // "Pacific Daylight Time"
TimeZone.vancouver.localizedNameShort() // "PDT"https://stackoverflow.com/questions/66897627
复制相似问题