web-dev-qa-db-fra.com

Récupérer l'heure locale sur iPhone?

Je souhaite obtenir l'heure et les minutes actuelles sur l'iPhone d'un utilisateur afin de les afficher dans une application qui n'affiche pas la barre d'état. Y a-t-il un moyen simple de faire cela?

32
user21293
// 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);
112
mixolution
-(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]);
}
13
Nitin Malguri
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;

Je pense que tu devrais essayer ça. Le fuseau horaire est important.

12
ZYiOS

Voir ceci question similaire pour une réponse. Vous devrez le changer pour votre format de date.

[[NSDate date] timeIntervalSince1970];
10
Chris Ballance

si vous cherchez à calculer des intervalles de temps, il vaut mieux utiliser CACurrentMediaTime

double currentTime = CACurrentMediaTime();
6
Vinay Wadhwa

CFAbsoluteTimeGetCurrent ()

Le temps absolu est mesuré en secondes par rapport à la date de référence absolue du 1er janvier 2001 à 00:00:00 GMT. Une valeur positive représente une date après la date de référence, une valeur négative représente une date antérieure. Par exemple, l'heure absolue -32940326 équivaut au 16 décembre 1999 à 17:54:34. Des appels répétés à cette fonction ne garantissent pas des résultats en augmentation monotone. L'heure système peut diminuer en raison de la synchronisation avec des références de temps externes ou d'un changement explicite de l'horloge par l'utilisateur.

0

Une approche plus courte

NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
                                                dateStyle:NSDateFormatterNoStyle
                                                timeStyle:NSDateFormatterShortStyle];
0
Jim75