Конвертировать целое число миллисекунд в строку времени

Это может быть простой вопрос, но я в замешательстве и мне нужна ваша помощь. Мне нужно конвертировать это:

let S: Int = 45296789

в это: "12 34 56 789"

то есть S является целым числом, представляющим миллисекунды. Что мне нужно, это отформатировать вhh mm ss iii"

Одним из решений может быть следующее:

var a = S/1000/60/60
var b = S/1000/60%60
var c = S/1000 % 60
var d = S % 1000

String(format:"%02i %02i %02i %03i", a, b, c, d)

Но мне нужен метод, использующий NSDateFormatter() или же NSTimeFormatter() если это возможно.

Я посмотрел на stackru, но существует слишком много форм решения, и я не смог найти тот, который включает миллисекунды. (часть 789 миллисекунд)

2 ответа

Решение

Попробуй это:

let s = 45296789

let date = NSDate(timeIntervalSince1970: Double(s) / 1000)
let formatter = NSDateFormatter()
formatter.timeZone = NSTimeZone(name: "UTC")
formatter.dateFormat = "HH mm ss SSS"

print(formatter.stringFromDate(date))

5

          let milliseconds = 35347634

    let date = Date(timeIntervalSince1970: milliseconds / 1_000)

    let formatter = DateFormatter()
    formatter.timeZone = TimeZone(identifier: "UTC")
    formatter.dateFormat = "HH:mm:ss"

    print(formatter.string(from: date))
Другие вопросы по тегам