Passing a formatted NSDate

2020-05-02 08:12发布

问题:

Formatted dates that I am passing to an instance method are not saving/printing the correct date. Can someone please help?

Calling method code snippets:

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"dd-mm-yyyy"];

[requests addObject:[[Request alloc] initWithDueDate:(NSDate *) [dateFormatter dateFromString:@"13-09-2011"]]];

Receiving method code snippets:

dueDate = dd;

NSLog(@"Due Date: %@", dueDate);

Console output:

Due Date: 2011-01-12 13:09:00 +0000

回答1:

You have to check your formatting string. It follows these official formats.

[dateFormatter setDateFormat:@"dd-MM-yyyy"];

Small m is for minute, cap M for the month.



回答2:

Next works perfect for me:

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"dd-MM-yyyy"];

NSDate *date = [dateFormatter dateFromString:@"13-09-2011"];
NSLog(@"%@", date);


回答3:

http://unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns

Make sure you check your formatted NSDates to this. They are case-sentitive so make sure you use them correctly



标签: objective-c