Je cherche à obtenir l'heure et les minutes sur l'iPhone d'un utilisateur pour l'affichage dans une application qui ne montre pas la barre d'état. Est-il un moyen simple de le faire?
Récupération heure sur l'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;
Je pense que vous devriez essayer. Le timeZone est important.
Voir cette même question pour une réponse. Vous devrez changer à votre format de date.
[[NSDate date] timeIntervalSince1970]; si vous êtes à la recherche pour le calcul des intervalles de temps, vous feriez mieux d'utiliser CACurrentMediaTime
double currentTime = CACurrentMediaTime();
CFAbsoluteTimeGetCurrent ()
Le temps absolu est mesuré en secondes par rapport à la date de référence absolue du 1 janvier 2001 00:00:00 GMT. Une valeur positive représente une date postérieure à la date de référence, une valeur négative représente une date devant elle. Par exemple, le temps absolu -32940326 est équivalent au 16 Décembre 1999 à 17:54:34. Les appels répétés à cette fonction ne garantissent pas les résultats de plus en plus de façon monotone. Le temps du système peut diminuer en raison de la synchronisation avec des références de temps externes ou en raison d'un changement explicite de l'utilisateur de l'horloge.
Une approche plus courte
NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
dateStyle:NSDateFormatterNoStyle
timeStyle:NSDateFormatterShortStyle];













