Pregunta

Estoy creando una fecha como esta:

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]);

Mi problema es que cuando la fecha es el 1 de enero o el 2 de enero del año no es correcto .. Aquí debería ser 2010 (como se recupero año actual), pero en realidad es 2009 ... no entiendo por qué ! Y esto sólo ocurre durante esos 2 días ...

¿Tiene usted alguna idea de por qué es así? Gracias de antemano.

¿Fue útil?

Solución

Vea la Unicode estándar. "Aaaa" (en minúsculas) le da el año, pero "AAAA" (mayúsculas) le da el año para la semana de la fecha (es decir, si la fecha está dentro de la 52ª semana del año pasado, AAAA será el año pasado ).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top