Recuperando la hora local actual en iPhone?

votos
32

Estoy buscando obtener la hora y los minutos actuales en el iPhone de un usuario para mostrarlos en una aplicación que no muestra la barra de estado. ¿Hay una manera simple de hacer esto?

Publicado el 19/02/2009 a las 18:12
fuente por usuario
En otros idiomas...                            


7 respuestas

votos
112
// get current date/time
NSDate *today = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
// display in 12HR/24HR (i.e. 11:25PM or 23:25) format according to User Settings
[dateFormatter setTimeStyle:NSDateFormatterShortStyle];
NSString *currentTime = [dateFormatter stringFromDate:today];
[dateFormatter release];
NSLog(@"User's current time in their preference format:%@",currentTime);
Respondida el 23/10/2009 a las 07:29
fuente por usuario

votos
13
-(void)currentTime
{    
    //Get current time
    NSDate* now = [NSDate date];
    NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSCalendarIdentifierGregorian];
    NSDateComponents *dateComponents = [gregorian components:(NSCalendarUnitHour  | NSCalendarUnitMinute | NSCalendarUnitSecond) fromDate:now];
    NSInteger hour = [dateComponents hour];
    NSString *am_OR_pm=@"AM";

    if (hour>12)
    {
        hour=hour%12;

        am_OR_pm = @"PM";
    }

    NSInteger minute = [dateComponents minute];
    NSInteger second = [dateComponents second];
    [gregorian release];

    NSLog(@"Current Time  %@",[NSString stringWithFormat:@"%02ld:%02ld:%02ld %@", (long)hour, (long)minute, (long)second,am_OR_pm]);
}
Respondida el 14/08/2012 a las 07:44
fuente por usuario

votos
12
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeZone:[NSTimeZone localTimeZone]];
NSString *currentTime = [dateFormatter stringFromDate:[NSDate date]]
[dateFormatter release]; dateFormatter = nil;

Creo que deberías probar esto. La zona horaria es importante.

Respondida el 29/06/2011 a las 04:23
fuente por usuario

votos
10

Vea esta pregunta similar para una respuesta. Tendrá que cambiarlo a su formato de fecha.

[[NSDate date] timeIntervalSince1970];
Respondida el 19/02/2009 a las 18:20
fuente por usuario

votos
6

si usted está buscando para el cálculo de intervalos de tiempo, que es mejor usar CACurrentMediaTime

double currentTime = CACurrentMediaTime();
Respondida el 26/11/2012 a las 13:13
fuente por usuario

votos
0

CFAbsoluteTimeGetCurrent ()

El tiempo absoluto se mide en segundos en relación con la fecha de referencia absoluta de 01 de enero 2001 00:00:00 GMT. Un valor positivo representa una fecha posterior a la fecha de referencia, un valor negativo representa una fecha anterior a la misma. Por ejemplo, el tiempo absoluto -32940326 es equivalente al 16 de diciembre de 1999 en 17:54:34. Repetidas llamadas a esta función no garantizan monótonamente crecientes resultados. El tiempo de sistema puede disminuir debido a la sincronización con referencias de tiempo externos o debido a un cambio explícita del usuario del reloj.

Respondida el 05/04/2017 a las 06:51
fuente por usuario

votos
0

Un enfoque más corta

NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
                                                dateStyle:NSDateFormatterNoStyle
                                                timeStyle:NSDateFormatterShortStyle];
Respondida el 23/10/2016 a las 14:20
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more