【问题标题】:Parse ISO8601 in swift快速解析 ISO8601
【发布时间】:2020-06-09 14:56:05
【问题描述】:

我正在解析2020-06-09T18:11:26.904Z,它返回这个09 Jun, 11:11 pm,它应该是06:11 pm

我已经尝试过这个解决方案Parsing a ISO8601 String to Date in Swift,但它的工作原理也是一样的。

这是我的代码。

let df = DateFormatter()
df.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
guard let date = df.date(from: dateTime) else {
    return nil
}

df.dateFormat = "dd MMM, hh:mm a"
df.amSymbol = "am"
df.pmSymbol = "pm"
let stringFromDate = df.string(from: date)
return stringFromDate

我知道我可以在提到的链接上询问它,但由于是新用户,我无法对此添加评论。

【问题讨论】:

  • 使用:ISO8601DateFormatter() 免费获取所有逻辑。
  • 您的时区似乎有问题。尝试像这样设置正确的时区df.timeZone = TimeZone(secondsFromGMT: 0)
  • 在哪里设置正确的时区?
  • 请查看我上面更新的评论
  • 您也可以使用其标识符初始化时区,只需开始输入TimeZone(,自动完成将显示所有选项

标签: ios swift iphone date iso8601


【解决方案1】:

您没有设置输出日期的时区,因此它默认为您系统的时区,而不是 UTC(这是您所期望的)。

【讨论】:

    猜你喜欢
    • 2014-10-14
    • 2018-07-08
    • 2011-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多