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?
// 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 tu devrais essayer ça. Le fuseau horaire est important.
Voir ceci question similaire pour une réponse. Vous devrez le changer pour votre format de date.
[[NSDate date] timeIntervalSince1970];
si vous cherchez à calculer des intervalles de temps, il vaut mieux utiliser CACurrentMediaTime
double currentTime = CACurrentMediaTime();
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.
Une approche plus courte
NSDate * now = [NSDate date];
timeLabel.text = [NSDateFormatter localizedStringFromDate:now
dateStyle:NSDateFormatterNoStyle
timeStyle:NSDateFormatterShortStyle];