Here is the code excerpt:
func mapping(map: Map) {
time <- (map["time"], TransformOf<Date, String>(fromJSON: {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "HH:mm:ss"
//dateFormatter.timeZone = TimeZone(abbreviation: "EEST")
if let argument = $0 {
let date = dateFormatter.date(from: argument)
return dateFormatter.date(from: argument)
}
return nil
}}
$0
is string with "22:12:00"
. I put "let date" to see what it returns and it's nil. I've looked up for format codes here: http://waracle.net/iphone-nsdateformatter-date-formatting-table/
Code should work actually. What am I doing wrong?
EDIT: Added the whole function
EDIT2: I just noticed it's working properly on iPhone 7 iOS 10.1 simulator but returns nil on my iPod 10.1.1 (2016). This is so weird.
From Technical Q&A QA1480 – NSDateFormatter and Internet Dates:
This will prevent the date from being interpreted according to the user's regional settings:
See also What is the best way to deal with the NSDateFormatter locale "feechur"?.