iOS NSDate NSDateFormatter


Example

Converting 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.