ios - Swift DateFormatter 返回错误的日期

标签 ios swift dateformatter

在以下情况下我无法获得正确的日期

let dateString = "May 2, 2018 at 3:31 PM"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMM dd, yyyy 'at' HH:mm a"
dateFormatter.timeZone = TimeZone(identifier: "UTC")
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
let date = dateFormatter.date(from: dateString)!

我得到的日期是“2018 年 5 月 2 日上午 8:31”,这是错误的

当相同的日期与不同的日期格式字符串一起使用时,我得到正确的日期

let dateFormatter3 = DateFormatter()
dateFormatter3.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
dateFormatter3.locale = Locale(identifier: "en_US_POSIX")
dateFormatter3.timeZone = TimeZone(identifier: "UTC")
let date3 = dateFormatter3.date(from: "2018-05-02T15:31:00")!

返回的日期是“2018 年 5 月 2 日上午 11:31”,这是正确的。

我想知道我在第一个代码块中做错了什么?或者这是日期格式化程序类中的错误?

最佳答案

当小时在 am/pm(1~12) 时使用 hh,在一天中的小时(0~23) 使用 HH。

这有助于我格式化我的日期: enter image description here

关于ios - Swift DateFormatter 返回错误的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50143545/

相关文章:

ios - 如何在不按回车键或任何其他可控按钮的情况下关闭键盘

ios - Swift 按钮按下复制文本

asynchronous - 如何在 Playground 中运行异步回调

json - 如何在没有时区的情况下解析 ISO8061 日期

ios - 将 ISO 8601 字符串转换为格式化日期字符串(Swift)

ios - 将 RxDataSource 添加到 UICollectionView 时 Xcode 崩溃

ios - 核心蓝牙 iOS - 检索错误的外围设备

ios - 当 slider 具有极端最大值时,UISlider MaximumTrackImage 剪辑

ios - Swift:从 JSON 解析日期

ios - 找不到开发人员磁盘镜像堆栈溢出 xcode 7.2,iOS 9.3.1