Несколько заметок:
Вам нужны два разных NSDateFormatters. Тот, который определяет формат входной даты, и тот, который определяет формат выходной даты.
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"dd MMM yyyy"];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"yyyy-MM-dd"];
Вы можете повторно использовать эти форматеры как для fromDate
, так и для toDate
.
Во-вторых, dateFromString:
возвращает выделенный, автоматически выпущенный объект NSDate. Вы пропускаете те, которые вы выделяете вручную.
#import <Cocoa/Cocoa.h>
int main (int argc, char const *argv[])
{
NSAutoreleasePool *pool = [NSAutoreleasePool new];
NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"dd MMM yyyy"];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"yyyy-MM-dd"];
NSDate *fromDate = [inputFormatter dateFromString:@"01 Apr 2010"];
NSDate *toDate = [inputFormatter dateFromString:@"30 Apr 2010"];
printf("\n fromDate: %s",[fromDate.description UTF8String]);
NSString *fromDateString=[outputFormatter stringFromDate:fromDate];
printf("\n fromDateString: %s",[fromDateString UTF8String]);
printf("\n toDate: %s",[toDate.description UTF8String]);
NSString *toDateString=[outputFormatter stringFromDate:toDate];
printf("\n toDateString: %s",[toDateString UTF8String]);
[inputFormatter release];
[outputFormatter release];
[pool drain];
return 0;
}