2016-11-21 7 views
0

Я пытаюсь преобразовать миллисекунды в строку даты в swift 3, я попытался установить дату fomatter, но я не получаю текущую строку даты.Как преобразовать миллисекунды в строку даты в swift 3

var milliseconds=1477593000000 

let date = NSDate(timeIntervalSince1970: TimeInterval(milliseconds)) 
let formatter = DateFormatter() 
formatter.dateFormat = "dd-MM-yyyy HH:mm:ss" 
formatter.locale = NSLocale(localeIdentifier: "en_US") as Locale! 
print(formatter.string(from: date as Date)) 

output: 

22-01-48793 01:30:00 
+2

попробуйте 'TimeInterval (миллисекунды/1000)' и проверить выход –

+1

Он ожидает секунды. – kometen

+0

Я пробовал, делясь на 1000, он работает –

ответ

9

Попробуйте,

var date = Date(timeIntervalSince1970: (1477593000000/1000.0)) 
print("date - \(date)") 

вы получите выход как дата:

дата - 2016-10-27 18:30:00 +0000

1

Посмотрите на documentation из NSDate:

convenience init(timeIntervalSince1970 secs: TimeInterval) 

Возвращает NSDate объект инициализирован относительно текущей даты и времени на заданное число секунд.

Просто конвертируйте миллисекунды в секундах, и вы должны получить правильную дату.

2

Как насчет этого -

let milisecond = 1479714427 
    let dateVar = Date.init(timeIntervalSinceNow: TimeInterval(milisecond)/1000) 
    var dateFormatter = DateFormatter() 
    dateFormatter.dateFormat = "dd-MM-yyyy hh:mm" 
    print(dateFormatter.string(from: dateVar)) 
Смежные вопросы