gpt4 book ai didi

ios - 如何更改 SwiftDate 中的时区?

转载 作者:行者123 更新时间:2023-11-28 12:15:09 25 4
gpt4 key购买 nike

我已经在我的应用程序中显示了时区列表。如果用户选择特定时区,我需要将本地时区更改为用户选择的时区。

let region = Region(tz: timeZoneName.timeZone  , cal: cal, loc: cal.locale!)
let date = Date().inRegion(region: region).absoluteDate

这里是问题所在,地区更改为所选时区,但发布日期为本地时区。

最佳答案

A Date不包含时区。来自苹果的文档:一个特定的时间点,独立于任何日历或时区。

只要您想向用户显示日期,时区就会发挥作用。这就是 DateFormatter是为了。正如@AlexWoe89 已经指出的那样,它让您将包含日期的字符串转换为 Date。对象,还允许您将给定日期转换为表示您设置为 timeZone 的时区日期的字符串DateFormatter的属性(property).

let date = Date()

var dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm"

dateFormatter.timeZone = TimeZone(identifier: "America/Los_Angeles")
let dateString1 = dateFormatter.string(from: date)

dateFormatter.timeZone = TimeZone(identifier: "Germany/Berlin")
let dateString2 = dateFormatter.string(from: date)

这将存储 2017-10-23 04:27在 dateString1 中,而同一日期导致 2017-10-23 13:27在 dateString2 中。

关于ios - 如何更改 SwiftDate 中的时区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46887437/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com