我试图在这里做一些非常简单的事情,但失败了。我只想将带有完整日期的字符串转换为小时和分钟,有人能看到我哪里出错了吗?以下代码打印 nil
let dateString2 = "2018-03-11 20:43:05 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss +zzzz"
dateFormatter.locale = Locale.init(identifier: "en_GB")
let dateObj = dateFormatter.date(from: dateString2)
dateFormatter.dateFormat = "hh:mm"
print("Dateobj: \(dateFormatter.string(from: dateObj!))")
Run Code Online (Sandbox Code Playgroud)
你的dateFormat字符串有缺陷。hh是 12 小时时间格式,当您明确收到 24 小时时间格式时,您需要使用HH. 即使zzzz有效,+0000 实际上应该由z. 在大多数情况下使用固定时间格式时,您还应该locale将en_US_POSIX.
let dateString2 = "2018-03-11 20:43:05 +0000"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss z"
dateFormatter.locale = Locale.init(identifier: "en_US_POSIX")
let dateObj = dateFormatter.date(from: dateString2)
dateFormatter.dateFormat = "HH:mm"
print("Dateobj: \(dateFormatter.string(from: dateObj!))")
Run Code Online (Sandbox Code Playgroud)
输出:
20:43
| 归档时间: |
|
| 查看次数: |
3598 次 |
| 最近记录: |