Apple ドキュメントのこのページから、 Unicode Technical StandardNSDateFormatter
に従っていることがわかります。そこから、UNIX 時間を指定することはオプションではないことがわかります。
したがって、文字列を分割し、数値を NSTimeInterval に変換して、NSDate に読み込む必要があります。
http://unixtimestamp.comは、これをデバッグするのに非常に役立ちます。1344433014807 が実際にはミリ秒であることに気付くでしょう。
自分で書かなければならなかったので、これがSwiftの実装です。うまくいけば、正しく動作します:)
public func dateFromBlaString(string: String) -> NSDate? {
if let rangeOfDate = string.rangeOfString("^/Bla\\(", options: .RegularExpressionSearch, range: nil, locale: nil)
where count(string) >= count("/Bla(") { // avoid out of range error
let startIndex = advance(string.startIndex, count("/Bla(")
let suffix = string.substringFromIndex(startIndex) // "1344433014807)/"
if let parenthesisRange = suffix.rangeOfString(")", options: .LiteralSearch, range: nil, locale: nil) {
let parenthesisIndex = parenthesisRange.startIndex
let unixTimeInMillisecondsString = suffix.substringToIndex(parenthesisIndex) // "1344433014807"
if let unixTimeInMillisecondsDouble = NSNumberFormatter().numberFromString(unixTimeInMillisecondsString)?.doubleValue { // 1344433014807.0
let unixTime = NSTimeInterval(unixTimeInMillisecondsInt) / 1000
return NSDate(timeIntervalSince1970: unixTime)
}
}
}
return nil
}