Ich versuche, einen Wert wie "898.171813964844" in 00:17:02 (hh:mm:ss) zu konvertieren.
Wie lässt sich dies in Objective C bewerkstelligen?
Danke für die Hilfe!
Ich versuche, einen Wert wie "898.171813964844" in 00:17:02 (hh:mm:ss) zu konvertieren.
Wie lässt sich dies in Objective C bewerkstelligen?
Danke für die Hilfe!
Endgültige Lösung:
NSNumber *time = [NSNumber numberWithDouble:([online_time doubleValue] - 3600)];
NSTimeInterval interval = [time doubleValue];
NSDate *online = [NSDate date];
online = [NSDate dateWithTimeIntervalSince1970:interval];
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"HH:mm:ss"];
NSLog(@"result: %@", [dateFormatter stringFromDate:online]);
Unter der Annahme, dass Sie nur an Stunden, Minuten und Sekunden interessiert sind und der Eingabewert kleiner oder gleich 86400 ist, könnten Sie etwas wie folgt tun:
NSNumber *theDouble = [NSNumber numberWithDouble:898.171813964844];
int inputSeconds = [theDouble intValue];
int hours = inputSeconds / 3600;
int minutes = ( inputSeconds - hours * 3600 ) / 60;
int seconds = inputSeconds - hours * 3600 - minutes * 60;
NSString *theTime = [NSString stringWithFormat:@"%.2d:%.2d:%.2d", hours, minutes, seconds];
Ich weiß, die Antwort wurde bereits akzeptiert, aber hier ist meine Antwort mit NSDateFormatter und unter Berücksichtigung der Zeitzone (zu Ihrer Zeitzone Stunden [zB GMT+4] wird unerwartet hinzugefügt @Ben)
NSTimeInterval intervalValue = 898.171813964844;
NSDateFormatter *hmsFormatter = [[NSDateFormatter alloc] init];
[hmsFormatter setDateFormat:@"HH:mm:ss"];
[hmsFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
NSLog(@"formatted date: %@", [hmsFormatter stringFromDate:[NSDate dateWithTimeIntervalSinceReferenceDate:intervalValue]]);
(Randnotiz) @phx: Wenn man davon ausgeht, dass 898,171813964844 in Sekunden angegeben ist, würde dies 00:14:58 und nicht 00:17:02 entsprechen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.
0 Stimmen
Sie könnten einfache Arithmetik verwenden, aber ich verstehe nicht, wie 898,171813964844 00:17:02 sein soll. Worauf bezieht sich der Float?
0 Stimmen
Hey, in Ruby mache ich einfach Time.at(time - 3600).strftime("%H:%M:%S") und erhalte das richtige Ergebnis. (time ist der Float-Wert)