在swift中从字符串到日期的转换返回nil

nik*_*hil 3 nsdateformatter ios 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")!;`
Run Code Online (Sandbox Code Playgroud)

Cod*_*ent 7

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

dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss Z"
dateFormatter.locale = Locale(identifier: "en_US")
Run Code Online (Sandbox Code Playgroud)
  • hh意味着12小时格式,所以没有15小时.请HH改用
  • +zzzz是无效的时区说明符.请Z改用
  • 除非周五缩短为Fri保加利亚语,否则请使用英语语言环境

  • @nikhil尝试`dateFormatter.locale = Locale.current`,我不知道为什么"bg_BG"不起作用. (2认同)