Frage

Ich erstelle ein Datum wie folgt aus:

NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"YYYY"];
NSInteger year = [[dateFormatter stringFromDate:[NSDate date]] intValue];
NSLog(@"NSInteger YEAR : %d\n", year);

//minutes, hours, day and month are initialized elsewhere...

NSDateComponents *comps = [[NSDateComponents alloc] init];      
[comps setYear:year];
[comps setMonth:month];
[comps setDay:day];
[comps setHour:hours];
[comps setMinute:minutes];
NSDate *sampleDate = [gregorian dateFromComponents:comps];

NSLog(@"sampleDate YEAR : %d\n", [[dateFormatter stringFromDate:sampleDate] intValue]);

Mein Problem ist, dass, wenn das Datum 1. Januar ist oder 2. Januar das Jahr nicht richtig ist .. Hier sollte es 2010 sein (wie ich heute in diesem Jahr abgerufen werden), aber eigentlich ist es 2009 ... Ich verstehe nicht, Warum ! Und dies nur geschieht, für die 2 Tage ...

Haben Sie eine Ahnung, warum es auf diese Weise? Vielen Dank im Voraus.

War es hilfreich?

Lösung

Sehen Sie die Unicode-Standard . „Yyyy“ (Kleinschreibung) gibt Ihnen das Jahr, aber „YYYY“ (Großbuchstaben) gibt Ihnen das Jahr für die Woche Datum (das heißt, wenn das Datum in der 52. Woche des letzten Jahres, wird YYYY im letzten Jahr ).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top