Je voudrais get l'heure et la minute actuelles comme entiers. Donc, si tout de suite est 03h16, j'aimerais get les deux nombres entiers: 3 et 16.
Mais il semble que [NSDate date]
donnera le nombre de secondes depuis 1970, ou il peut donner une string de la représentation de l'heure actuelle, mais il n'y a pas de moyen facile de les get comme entiers?
Je vois un post dans Obtenir l'heure actuelle , mais il impliquait NSDateComponents
et NSCalendar
? C'est trop compliqué … tout ce qui était besoin est quelque chose comme
NSDate *date = [NSDate date]; int hour = [date getHour]; // which is not possible
Existe-t-il un moyen plus simple que d'utiliser 3 classs NSDate
, NSDateComponents
et NSCalendar
pour get l'heure courante sous la forme d'un entier, ou généralement en Objective-C, utiliserions-nous typiquement localtime
et tm
pour get l'heure en entier?
NSDate
ne contient que le time écoulé depuis une certaine date de reference, pour get des nombres plus significatifs (par exemple, après avoir pris soin de l'heure d'été, des années bissextiles et de tous les autres trucs stupides), vous devez utiliser NSDateComponents
NSCalendar
.
La façon dont vous interprétez les secondes depuis 1970 dépend du calendar que vous utilisez. Il n'y a simplement pas d'autre option. Heureusement, ce n'est pas si difficile à mettre en place. Voir le «Guide de programmation des données et du time» pour de nombreux exemples. Dans ton cas:
// Assume you have a 'date' NSCalendar *gregorianCal = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; NSDateComponents *dateComps = [gregorianCal components: (NSHourCalendarUnit | NSMinuteCalendarUnit) fromDate: date]; // Then use it [dateComps minute]; [dateComps hour];
Donc ce n'est vraiment pas si compliqué.
Notez également que vous pouvez créer une 'Catégorie de class' pour encapsuler ceci:
@interface NSDate (MyGregorianDateComponents) - (NSInteger) getGregorianHour; - (NSInteger) getGregorianMinute; @end
Ma class peut aider. https://github.com/TjeerdVurig/Vurig-Calendar/blob/master/Vurig%20Calendar/NSDate%2Bconvenience.m
Je suis sûr que vous pouvez comprendre la partie minute 🙂