Jak przeanalizować wartość ciągu, np. 12:02:21.3213
, aby uzyskać NSTimeInterval
? NSDateComponentsFormatter
, dostępny od iOS8, obsługuje tylko formatowanie, a nie parsowanie.Jak przeanalizować ciąg znaków do NSTimeInterval
5
A
Odpowiedz
7
Oto jak można to zrobić w Swift:
func parseDuration(timeString:String) -> NSTimeInterval {
guard !timeString.isEmpty else {
return 0
}
var interval:Double = 0
let parts = timeString.componentsSeparatedByString(":")
for (index, part) in parts.reverse().enumerate() {
interval += (Double(part) ?? 0) * pow(Double(60), Double(index))
}
return interval
}
Działa na wartościach jak 2:12:12
, 02:01:23.123213
6
Rozwiązanie dostarczone przez Bartosz Hernas pracował dla mnie, dziękuję!
Dla wygody, to jest tutaj dla Swift 3:
func parseDuration(_ timeString:String) -> TimeInterval {
guard !timeString.isEmpty else {
return 0
}
var interval:Double = 0
let parts = timeString.components(separatedBy: ":")
for (index, part) in parts.reversed().enumerated() {
interval += (Double(part) ?? 0) * pow(Double(60), Double(index))
}
return interval
}
Powiązane problemy
- 1. Jak przeanalizować złożony ciąg znaków w C++?
- 2. Jak przeanalizować ciąg do BigDecimal?
- 3. Jak przeanalizować ciąg znaków do dziesiętnych z symbolem waluty?
- 4. Jak poprawnie używać NSTimeInterval?
- 5. Jak przeanalizować ciąg znaków i zwrócić zagnieżdżoną tablicę?
- 6. Jak mogę przeanalizować ciąg znaków HTML w języku Java?
- 7. ciąg znaków do listy znaków
- 8. Jak przeanalizować ciąg znaków do listy elementów pływających za pomocą stylu funkcjonalnego?
- 9. Jak przekonwertować NSInteger na NSTimeInterval
- 10. Jak przekonwertować zwrot WebResponse.GetResponseStream na ciąg znaków?
- 11. Włącz ciąg znaków do operatora
- 12. przeanalizować ten json ciąg do tablicy ciągów C#
- 13. Scala: dopasować i przeanalizować ciąg liczb całkowitych?
- 14. PowerShell: Jak ograniczyć ciąg do N znaków?
- 15. Konwersja z NStimeInterval do CMTime dokładnie
- 16. Jak przeanalizować plik YAML?
- 17. Parsować ciąg znaków do wartości wyliczeniowej w VB.NET
- 18. Jak poprawnie przeanalizować liczbę całkowitą w PHP?
- 19. Jak sortować alfabetycznie ciąg znaków?
- 20. Co to jest "ruby", aby przeanalizować ciąg znaków dla pojedynczego klucza/wartości?
- 21. Jak zapisywać wartości NSTimeInterval w obiekcie NSMutableArray?
- 22. W języku C#, jaki jest najlepszy sposób, aby przeanalizować tę wartość z ciąg znaków?
- 23. Angular2 przeanalizuj ciąg znaków do html
- 24. Podział ciąg do tablicy ciągów pojedynczych znaków
- 25. Napisz ciąg danych do tablicy znaków NumPy?
- 26. Zastępowanie znaków od ciągu jeden do dwóch ciąg znaków
- 27. Ruby taśmy ciąg znaków
- 28. Jak przeanalizować tablicę numpy?
- 29. Wybierz sparsowany int, jeśli ciąg znaków można sparsować do int
- 30. Szyfruj pusty ciąg znaków
Możliwy duplikat [? W jaki sposób mogę przekonwertować datę ciąg do NSDate] (http://stackoverflow.com/questions/24777496/how -can-i-convert-string-date-to-nsdate) – rghome
@rghome: Nie, nie duplikat, a przynajmniej nie * tego * pytania. - "12: 02: 21.3213" tutaj jest * czas trwania * (który może być reprezentowany jako NSTimeInterval), a nie jako punkt w czasie (który byłby NSDate). –
Może nie dokładny duplikat. Możesz przeanalizować czas 1 stycznia 1970, a następnie uzyskać interwał dla tej daty. Sądzę, że chodzi tu tylko o osobną odpowiedź. – rghome