Mi aplicación utilizó la función [NSDate date] para obtener la fecha actual. Funciona bien otros días excepto 1 de cada mes durante AM. es decir Siga los siguientes pasos:NSDate devuelve una fecha incorrecta el primer día del mes
- Establecer la fecha del sistema como 01 - Junio - 2011 & tiempo entre la medianoche 00.00 a 5.59 PM.
- Utilice el código siguiente:
NSLog(@"Current Date :: %@",[NSDate date]);
La O/P es :: Fecha actual :: 2011-05-31 19:40:21 +0000
O deseado/P es :: Fecha actual :: 2011-06-01 00: 00: 0 (iethe tiempo que se fija) 0000
también de 06 a.m. funciona bien.
¿Cuál es la razón de esto?
En realidad, no quiero NSDate en formato de cadena, pero lo que quiero es el objeto de fecha NSDate correspondiente a la primera fecha del mes actual. Por lo que yo uso siguiente fragmento de código:
NSCalendar *gregorian = [[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
[gregorian setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
NSDateComponents *comp = [gregorian components:(NSYearCalendarUnit | NSMonthCalendarUnit
| NSDayCalendarUnit) fromDate:[NSDatedate]];
[comp setDay:1];
NSDate *firstDayOfMonthDate = [gregorian dateFromComponents:comp];
[gregorian release];
return firstDayOfMonthDate;
Desde [fecha NSDate] devuelve una fecha incorrecta, también contiene componentes fecha equivocada. El código anterior funciona para todos los senarios excepto el senario que publiqué en el comienzo de este hilo. ¿Que debería hacer?
Dada esta información, no puedo pensar en una razón por la cual debería ser así. Quizás es un error? –