Как анализировать значение строки, например 12:02:21.3213
, до NSTimeInterval
? NSDateComponentsFormatter
, доступный с iOS8, поддерживает только форматирование, а не синтаксический анализ.Как разбирать строку в NSTimeInterval
5
A
ответ
7
Вот как вы можете сделать это в 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
}
Он работает для значений как 2:12:12
, 02:01:23.123213
6
Решение, предлагаемое Бартош Hernas работал для меня, спасибо!
Для удобства здесь для 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
}
Смежные вопросы
- 1. Как разбирать строку?
- 2. Как разбирать строку JSON?
- 3. Как разбирать строку объекта?
- 4. Java: как разбирать строку?
- 5. как разбирать строку
- 6. Как разбирать сложную строку
- 7. Разбирать строку как Json?
- 8. Как разбирать строку словами
- 9. Как разбирать строку datetime?
- 10. Как разбирать строку даты?
- 11. Java: как разбирать строку?
- 12. как разбирать строку в словаре
- 13. Как разбирать строку в json?
- 14. Как разбирать строку в JavaScript?
- 15. Как разбирать строку в python?
- 16. Как разбирать строку в переменных?
- 17. Как разбирать строку в SWIFT
- 18. Как разбирать строку в массиве
- 19. Как разбирать строку в json
- 20. Как легко разбирать эту строку?
- 21. Как разбирать строку, содержащую словарь
- 22. как разбирать строку на дату?
- 23. Как разбирать строку, разделенную запятыми?
- 24. Python - как разбирать строку JSON
- 25. Как разбирать строку "(2 -59.0)"?
- 26. Разбирать строку как имя ресурса
- 27. Python: как разбирать строку «return»
- 28. Как разбирать строку, содержащую символ «+»
- 29. Как разбирать строку, учитывая следующее?
- 30. Как разбирать строку без разделителя?
Возможный дубликат [Как я могу преобразовать строку даты в NSDate] (http://stackoverflow.com/questions/24777496/how -can-i-convert-string-date-to-nsdate) – rghome
@rghome: Нет, не дубликат, по крайней мере, не из * этого вопроса. - «12: 02: 21.3213» здесь * продолжительность * (которая может быть представлена как NSTimeInterval), а не как момент времени (который будет NSDate). –
Возможно, это не точный дубликат. Вы можете проанализировать время на 1 января 1970 года, а затем получить интервал для этой даты. Наверное, это всего лишь отдельный ответ сам по себе. – rghome