convertir un float en NSDate
-
20-08-2019 - |
Question
Je veux convertir un float en NSDate
J'ai converti un NSDate en float en utilisant ceci:
// Turn the date into Integers
NSCalendar *calendar= [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSCalendarUnit unitFlags = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *dateComponents = [calendar components:unitFlags fromDate:nsdate_wakeTime];
NSInteger hour = [dateComponents hour];
NSInteger min = [dateComponents minute];
//Convert the time in 24:60 to x.x format.
float myTime = hour + min/60;
après quelques trucs mathématiques que je fais sur la variable mytime, je reçois beaucoup d'autres moments dans le même format flottant.
Comment transformer un float en NSDate?
Merci!
La solution
Si vous convertissez le temps que vous avez calculé en secondes (donc, mon heure * 60), vous pouvez utiliser dateWithTimeIntervalSinceReferenceDate:
pour revenir à un NSDate
. D'après les calculs que vous faites, il semble que la date référencée ici serait 00:00 pour la journée en question. Comme Jason l'a mentionné, il existe probablement une meilleure façon de faire ce que vous essayez d'accomplir.
De plus, vous devez modifier votre " myTime " calcul en divisant par 60,0 si vous voulez réellement les minutes; votre exemple de code divise une valeur entière inférieure à 60 par la valeur entière 60, qui sera toujours 0.