Recupero ore su iPhone?

voti
32

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?

È pubblicato 19/02/2009 alle 18:12
fonte dall'utente
In altre lingue...                            


7 risposte

voti
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);
Risposto il 23/10/2009 a 07:29
fonte dall'utente

voti
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]);
}
Risposto il 14/08/2012 a 07:44
fonte dall'utente

voti
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;

Penso che si dovrebbe provare questo. Il fuso orario è importante.

Risposto il 29/06/2011 a 04:23
fonte dall'utente

voti
10

Vedere questa domanda simile per una risposta. Si dovrà cambiare per il formato della data.

[[NSDate date] timeIntervalSince1970];
Risposto il 19/02/2009 a 18:20
fonte dall'utente

voti
6

se si sta cercando di calcolare gli intervalli di tempo, si sta meglio utilizzando CACurrentMediaTime

double currentTime = CACurrentMediaTime();
Risposto il 26/11/2012 a 13:13
fonte dall'utente

voti
0

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.

Risposto il 05/04/2017 a 09:51
fonte dall'utente

voti
0

Un approccio più breve

NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
                                                dateStyle:NSDateFormatterNoStyle
                                                timeStyle:NSDateFormatterShortStyle];
Risposto il 23/10/2016 a 17:20
fonte dall'utente

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