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?
Recuperando la hora local actual en iPhone?
// 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);
-(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]);
}
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.
Vea esta pregunta similar para una respuesta. Tendrá que cambiarlo a su formato de fecha.
[[NSDate date] timeIntervalSince1970]; si usted está buscando para el cálculo de intervalos de tiempo, que es mejor usar CACurrentMediaTime
double currentTime = CACurrentMediaTime();
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.
Un enfoque más corta
NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
dateStyle:NSDateFormatterNoStyle
timeStyle:NSDateFormatterShortStyle];













