一尘不染

快速从字符串转换为日期返回nil

swift

我在Swift 3中将字符串转换为日期时遇到问题。这是我的代码,在转换时它会返回nil值。

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "EEE, dd MMM yyyy hh:mm:ss +zzzz"
dateFormatter.locale = Locale.init(identifier: "bg_BG")

let recdate = dateFormatter.date(from:"Fri, 10 Mar 2017 15:03:03 +0530")!;`

阅读 195

收藏
2020-07-07

共1个答案

一尘不染

您为小时和时区设置了错误的格式说明符。用这个:

dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss Z"
dateFormatter.locale = Locale(identifier: "en_US")
  • hh表示12小时格式,因此没有15小时。请HH改用
  • +zzzz是无效的时区说明符。使用Z替代
  • 除非将星期五缩短为Fri保加利亚语,否则请使用英语语言环境
2020-07-07