NSDateFormatter
suggest changeConverting an NSDate
object to string is just 3 steps.
1. Create an NSDateFormatter
object
Swift
let dateFormatter = NSDateFormatter()
Swift 3
let dateFormatter = DateFormatter()
Objective-C
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
2. Set the date format in which you want your string
Swift
dateFormatter.dateFormat = "yyyy-MM-dd 'at' HH:mm"
Objective-C
dateFormatter.dateFormat = @"yyyy-MM-dd 'at' HH:mm";
3. Get the formatted string
Swift
let date = NSDate() // your NSDate object
let dateString = dateFormatter.stringFromDate(date)
Swift 3
let date = Date() // your NSDate object
let dateString = dateFormatter.stringFromDate(date)
Objective-C
NSDate *date = [NSDate date]; // your NSDate object
NSString *dateString = [dateFormatter stringFromDate:date];
This will give output something like this: 2001-01-02 at 13:00
Note
Creating an NSDateFormatter
instance is an expensive operation, so it is recommended to create it once and reuse when possible.
Useful extension for converting date to string.
extension Date {
func toString() -> String {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMMM dd yyyy"
return dateFormatter.string(from: self)
}
}
Useful links for swift date-formation swiftly-getting-human-readable-date-nsdateformatter.
For constructing date formats see date format patterns.
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents