2016-02-15 9 views
5

12:02:21.3213NSTimeIntervalのように文字列の値を解析する方法は? NSDateComponentsFormatterは、iOS8以降で使用でき、書式設定のみをサポートし、解析はできません。ここでNSTimeIntervalに文字列をパースする方法

+1

の可能性のある重複(http://stackoverflow.com/questions/24777496/how -can-i-convert-string-date-to-nsdate) – rghome

+0

@rghome:いいえ、重複ではなく、少なくとも*その*の質問ではありません。 - 「12:02:21.3213」ここでは、ある時点(NSDateになる)としてではなく、* duration *(NSTimeIntervalとして表すことができます)です。 –

+0

おそらく正確な重複はありません。 1970年1月1日の時刻を解析し、その日付の間隔を取得することができます。私は、それは単なる別の答えであると思います。 – rghome

答えて

7

あなたはスウィフトでそれを行うことができる方法である。

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 
} 

それはバルトシュHernasが提供するソリューションは、私のために働いた 2:12:1202:01:23.123213

6

のような値のために働く、ありがとうございました!便宜上

、ここではスウィフト3ためのものです:[?どうやってNSDateに文字列を日付に変換することができます]

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 
} 
関連する問題