I basically need to get current date and time separately, formatted as:
2009-04-26 11:06:54
The code below, from another question on the same topic, generates
now: |2009-06-01 23:18:23 +0100| dateString: |Jun 01, 2009 23:18| parsed: |2009-06-01 23:18:00 +0100|
This is almost what I'm looking for, but I want to separate the day and time.
NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd, yyyy HH:mm"];
NSDate *now = [[NSDate alloc] init];
NSString *dateString = [format stringFromDate:now];
NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"MMM dd, yyyy"];
NSDate *parsed = [inFormat dateFromString:dateString];
NSLog(@"\n"
"now: |%@| \n"
"dateString: |%@| \n"
"parsed: |%@|", now, dateString, parsed);
For swift
Thats it, you got it all you want.
Swift 3
Usage
Play with template to match your needs. Examples and doc here to help you build the template you need.
Note
You may want to cache your
DateFormatter
if you plan to use it inTableView
for instance. To give an idea, looping over 1000 dates took me 0.5 sec using the abovetoString(template: String)
function, compared to 0.05 sec usingmyFormatter.string(from: Date)
.iPhone format strings are in Unicode format. Behind the link is a table explaining what all the letters above mean so you can build your own.
And of course don't forget to release your date formatters when you're done with them. The above code leaks
format
,now
, andinFormat
.this is what i used:
nothing new but still want to share my method: