How can I obtain the current time in HH:MM:SS am/pm format?
Asked
Active
Viewed 5.0k times
42
-
2Read about `NSDateFormatter`. – BoltClock Jan 17 '11 at 16:47
-
I'm unable to figure out how am/pm is displayed in a 12 hr format – NSExplorer Jan 17 '11 at 16:55
-
Gory details of format strings: http://unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns – martin clayton Jan 17 '11 at 17:03
-
**Swift 3 Answer :** https://stackoverflow.com/a/46027060/3400991 – Shobhakar Tiwari Sep 03 '17 at 19:22
3 Answers
90
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm:ss a"];
NSLog(@"Current Date: %@", [formatter stringFromDate:[NSDate date]]);
[formatter release];
The format of the string in setDateFormat
is based on ISO-8601, http://en.wikipedia.org/wiki/ISO_8601#Dates
Swift 3 Version:
let formatter = DateFormatter()
formatter.dateFormat = "hh:mm:ss a"
print("Current date: \(formatter.string(from: Date()))") // -> Current date: 08:48:48 PM
There's also a new site since this original answer that helps writing these format strings. Aptly named... http://nsdateformatter.com

Chris Wagner
- 20,773
- 8
- 74
- 95
-
-
@martin Can you please elaborate what you mean by 'OP requested' ? Never heard of this before. – NSExplorer Jan 17 '11 at 16:58
-
3@iPhone - I was pointing out that you asked for the AM/PM indictaor, but Flash84x didn't include it yet. OP is an abbreviation of "original post" or "original poster". (am/pm is 'a' btw: `"hh:mm:ss a"`.) – martin clayton Jan 17 '11 at 17:00
-
@iPhone Developer, OP means Original Poster, updated to add am/pm – Chris Wagner Jan 17 '11 at 17:00
-
2
2
See the NSDateFormatter
class and the Data Formatting Guide. Don’t ever do these kind of things by hand, you won’t get the details right.

zoul
- 102,279
- 44
- 260
- 354