I am trying to convert a date in which the javascript code is generating the current date using the Date() function. But when I print it out, I am getting nil.
my code:
let date2 = data?[0] as! String
println(date2)
var str = "2013-07-21T19:32:00Z"
var dateFor: NSDateFormatter = NSDateFormatter()
dateFor.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
var Date: NSDate? = dateFor.dateFromString(date2)
println(Date)
date2 => is printing out 2015-05-15T21:58:00.066Z
Date => is printing nil
str is just for testing and works perfectly.
Anyone see any flaws in the code?
Swift 4+
Output: 2013-07-21 19:32:00 +0000
Use
ISO8601DateFormatter
per documentation going forwardThe issue is that
str
anddate2
two are not the same date format.str
format is"yyyy-MM-dd'T'HH:mm:ssZ"
whiledate2
format is"yyyy-MM-dd'T'HH:mm:ss.SSSZ"
. Besides that you should always set your dateFormatter’s locale to"en_US_POSIX"
when parsing fixed-format dates: