Sto cercando di ottenere l'ora ei minuti correnti su iPhone di un utente per la visualizzazione in un app che non mostra la barra di stato. C'è un modo semplice per fare questo?
Recupero ore su 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;
Penso che si dovrebbe provare questo. Il fuso orario è importante.
Vedere questa domanda simile per una risposta. Si dovrà cambiare per il formato della data.
[[NSDate date] timeIntervalSince1970]; se si sta cercando di calcolare gli intervalli di tempo, si sta meglio utilizzando CACurrentMediaTime
double currentTime = CACurrentMediaTime();
CFAbsoluteTimeGetCurrent ()
Tempo assoluto è misurato in secondi relativi alla data di riferimento assoluto del 1 Gennaio 2001 00:00:00 GMT. Un valore positivo rappresenta una data dopo la data di riferimento, un valore negativo rappresenta una data prima. Per esempio, il tempo assoluto -32940326 è equivalente al 16 dicembre, 1999 at 17:54:34. Ripetute chiamate a questa funzione non garantiscono monotonicamente crescenti risultati. L'ora di sistema può diminuire a causa di sincronizzazione con riferimenti temporali esterni oppure a causa di una modifica esplicita dell'utente del clock.
Un approccio più breve
NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
dateStyle:NSDateFormatterNoStyle
timeStyle:NSDateFormatterShortStyle];













