gpt4 book ai didi

Swift - 从 ISO8601 日期字符串中检索时区

转载 作者:搜寻专家 更新时间:2023-10-31 22:17:57 26 4
gpt4 key购买 nike

我将日期以这种格式保存在数据库中 - “yyyy-MM-dd'T'HH:mm:ssZ”。例如,“2018-05-17T11:15:00+0330”。时区各不相同,无论用户的本地时区是什么。

我想检索并显示日期,如“2018 年 5 月 17 日上午 11 点 15 分”,将日期/时间保持在与保存时相同的时区。我该怎么做?

我试过了。

let dateString = "2018-05-17T11:15:00+0330"
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
//formatter.timeZone = ???
print(formatter.date(from: dateString))

但我在本地时区获取 Date 对象并将其转换为日期字符串,也会在我的本地时区显示日期。

有没有这样的,https://stackoverflow.com/a/46216251/1373592 , 在 Swift 中?

谢谢。

最佳答案

您真正想做的是忽略时区。

您可以从日期字符串中去掉最后 5 个字符,以一种格式解析它,然后以另一种格式格式化它:

let dateString = "2018-05-17T11:15:00+0330"
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
let date = formatter.date(from: String(dateString.dropLast(5)))! // note the stripping off here
formatter.dateFormat = "MMMM d, yyyy hh.mma"
print(formatter.string(from: date))

请注意,您无法将此日期与其他日期进行比较,因为您已经去掉了它的时区。

此外,SwiftDate是一个类似于 JodaTime 的库。

关于Swift - 从 ISO8601 日期字符串中检索时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50384494/

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