Conversion from string to date in swift returns nil

后端 未结 2 1102
不思量自难忘°
不思量自难忘° 2020-12-11 22:09

I have a problem with converting the string to date in swift 3. Here is my code, it returns me a nil value while converting.

let dateFormatter = DateFormatte         


        
相关标签:
2条回答
  • 2020-12-11 22:21

    You set the wrong format specifier for hour and timezone. Use this:

    dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss Z"
    dateFormatter.locale = Locale(identifier: "en_US")
    
    • hh means 12-hour format so there's no hour 15. Use HH instead
    • +zzzz is invalid timezone specifier. Use Z instead
    • Unless Friday is shortened to Fri in Bulgarian, use an English locale
    0 讨论(0)
  • 2020-12-11 22:41

    You have a couple of problems, first, as pointed out by Code Different, you need to be using HH to read 24-hour times. But, you're also specifying a locale, which means that the "word" portions must be in bulgarian, not english. Leaving the language the default seems to work fine:

    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")!
    

    If you were to use Bulgarian day and month names, your format should work.

    dateFormatter.date(from:"нд, 10 март 2017 15:03:03 +0530")
    
    0 讨论(0)
提交回复
热议问题