【问题标题】:Swift 5 - Dateformatter not working as expected [duplicate]Swift 5 - Dateformatter 没有按预期工作 [重复]
【发布时间】:2021-09-10 15:39:05
【问题描述】:

我在 swift 中使用日期格式化程序,但 AM/PM 在我的代码中不起作用。

import Foundation
let dtstr = "Tuesday, July 28, 2020 4:15:45 PM"
let formatter = DateFormatter()
formatter.dateFormat = "eeee, MMMM d, yyyy h:m:s a"
let date = formatter.date(from: dtstr)
print(date)

输出是这样的:Optional(2020-07-28 08:15:45 +0000)。但是,它应该是 16:15:45 而不是这个。知道为什么吗?

谢谢!

【问题讨论】:

  • 08:15:45 在伦敦 16:15:45 你在哪里。世界是圆的,所以不同的地方在不同的时间调用相同的时刻。
  • 另请注意,print 语句的输出未格式化,因此您在 DateFormatter 中所说的完全无关紧要。
  • 谢谢 :-) 我现在明白问题所在了 :-)

标签: swift foundation dateformatter


【解决方案1】:

Date 没有关于时区的信息,默认字符串表示使用的是格林威治。你可以在你的字符串中看到它+0000 部分。

您可以像这样获取自己时区的描述:

date.description(with: .current)

【讨论】:

    猜你喜欢
    • 2019-01-30
    • 1970-01-01
    • 2014-12-17
    • 2012-11-01
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-14
    相关资源
    最近更新 更多