Mi país se encuentra en GMT + 0. Estamos a más de 1 hora, porque estamos en horario de verano.iPhone - fecha actual teniendo en cuenta el horario de verano
Cuando hago
[NSDate date];
se supone que devuelve la fecha y hora actuales, pero cuando lo hago, recibo la hora GMT, no teniendo en cuenta el horario de verano.
Esto es lo que dicen los documentos sobre el comando fecha
crea y devuelve una nueva fecha fijada para la fecha y la hora actuales.
¿Por qué Apple nos hace eso? ¿Por qué todo es tan complejo? ¿Es esto un error? ¿Hay alguna manera de obtener el tiempo real actual en el que se encuentra el dispositivo? al mismo tiempo que se muestra en el reloj del dispositivo?
Mi aplicación depende de las fechas y horas y tener una fecha incorrecta para un usuario ubicado en una zona horaria diferente en todo el mundo que está en verano o en invierno será un desastre.
Gracias.
EDITAR
Después de varias respuestas, he probado este código:
NSDate *wrongToday = [NSDate date];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
NSString *currentTime = [dateFormatter wrongToday];
NSDate *today = [dateFormatter dateFromString:currentTime];
adivinar lo que, hoy en día = wrongToday ... en otras palabras, ningún cambio, sigo teniendo la fecha incorrecta sin horario de verano. lo que es más sorprendente es que currentTime muestra en NSString la fecha con horario de verano ...
¿Alguna pista? gracias de nuevo.
Los objetos NSDate representan un momento absoluto en el tiempo. No se ven afectados por el horario de verano o el horario de verano. Para generar una fecha en un huso horario específico, debe crear una instancia de NSDateFormatter. – albertamg
lo siento, pero los documentos de Apple dicen que [NSDate date] devuelve la fecha y hora actuales y esto no es cierto. Una fecha y hora actual debe considerar el horario de verano. – SpaceDog
La zona horaria y el horario de verano son problemas de localización. Los documentos mencionan GMT en varios lugares, pero ciertamente podrían ser más claros. – MRAB