alphonse
alphonse

Reputation: 717

Which date format is this NSDate dateFormat?

I want to convert this string to NSDate,

Mon, 21 Mar 2016 10:26:45 GMT

so I set the date format to this:

dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss zzz"

but it returns nil.

I tried to change this format to:

E, dd MMM yyyy HH:mm:ss zzz

EEE, dd MMM yyyy hh:mm:ss zzz

EEE, d MMM yyyy HH:mm:ss zzz

but it also returns nil.

Which date format should I use?

Upvotes: 1

Views: 1109

Answers (4)

Ahmed Lotfy
Ahmed Lotfy

Reputation: 3906

You can try the following code

 let dateString:String = "Mon, 21 Mar 2016 10:26:45 GMT"
 let dateFormat = NSDateFormatter.init()
 dateFormat.dateStyle = .FullStyle
 dateFormat.dateFormat = "ccc, dd MM yyyy HH:mm:ss zzz"
 let date:NSDate? = dateFormat.dateFromString(dateString)
 print(dateFormat.stringFromDate(date!))

For more info please visit NSDateFormatter formatting

Upvotes: -1

Eric Aya
Eric Aya

Reputation: 70097

Your format string is ok but you have to add a compatible locale to the formatter.

For example your string works well with the US locale:

let source = "Mon, 21 Mar 2016 10:26:45 GMT"
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US")
dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss zzz"
let result = dateFormatter.dateFromString(source)

Upvotes: 3

Oleg Gordiichuk
Oleg Gordiichuk

Reputation: 15512

Try this code block :

let dateFormatter = NSDateFormatter()
let dateString = "Mon, 21 Mar 2016 10:26:45 GMT"
dateFormatter.dateFormat = "EEE, dd MMM yyyy HH:mm:ss zzz"
let date = dateFormatter.dateFromString(dateString)

Upvotes: 0

Emil
Emil

Reputation: 7256

Try escaping the comma:

E',' dd MMM yyyy HH:mm:ss zzz

Upvotes: -1

Related Questions