NSDateにカテゴリを記述して、ISO 8601文字列表現(YYYYMMDD)からNSDateを作成しています。
20010226を通過しても、2001-02-2523:00:00+0000に戻ります。私は何が間違っているのですか?
これはコードです:
-(id) initWithISO8601Date: (NSString *) iso8601Date{
// Takes a date in the YYYYMMDD form
int year = [[iso8601Date substringWithRange:NSMakeRange(0, 4)] integerValue];
int month = [[iso8601Date substringWithRange:NSMakeRange(4, 2)] integerValue];
int day = [[iso8601Date substringWithRange:NSMakeRange(6,2)] integerValue];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setYear:year];
[comps setMonth:month];
[comps setDay:day];
self = [[NSCalendar currentCalendar] dateFromComponents:comps];
NSLog(@"%@", self);
[comps release];
return self;
}