Reputation: 351
I need to set a date in medium format like: Jul 17, 2016 4:30:00 PM
,
but I get 07/17/2016 4:30:00 p.m.
Any help will be highly appreciated. Thanks in advance. this is my code:
let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
dateFormatter.timeStyle = NSDateFormatterStyle.MediumStyle
let mydate = dateFormatter.stringFromDate(NSDate())
Upvotes: 0
Views: 576
Reputation: 3960
For me, the code you are using does exactly what you need.
In case you need you can achieve this by using MMM dd, yyyy h:mm a
as the format string for your formatter object.
Code follows:
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "MMM dd, yyyy h:mm a"
let mydate = dateFormatter.stringFromDate(NSDate())
// "Jul 17, 2016 11:48 AM"
Upvotes: 1
Reputation: 236568
You just need to set your date formatter locale to "en_US_POSIX" and you should also set your formatter calendar to ISO8601 to get the result you were expecting:
Xcode 8 beta 2 • Swift 3
let dateFormatter = DateFormatter()
dateFormatter.calendar = Calendar(identifier: .ISO8601)
dateFormatter.locale = Locale(localeIdentifier: "en_US_POSIX")
dateFormatter.dateStyle = .medium
dateFormatter.timeStyle = .medium
print(dateFormatter.string(from: Date())) // "Jul 17, 2016, 4:09:48 AM\n"
Xcode 7.3.1 • Swift 2.2.1
let dateFormatter = NSDateFormatter()
dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierISO8601)
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.dateStyle = .MediumStyle
dateFormatter.timeStyle = .MediumStyle
print(dateFormatter.stringFromDate(NSDate())) // "Jul 17, 2016, 4:12:49 AM\n"
Upvotes: 0