2016-09-30 5 views
0

У меня на этот раз с сервера: 1475245457452 о дате и времени для этого: 30.9.2016, 16:24:17Как преобразовать дату миллисекунд в DateTime?

Как я могу преобразовать этот 1475245457452 в Delphi для правильной даты и времени?

+0

Вы проверили блок 'DateUtils'? –

+0

Я снова пометил ваш вопрос, угадывая вашу версию. Нет XE10. Я предполагаю, что это Берлин, но это не повлияет ни на что. –

+2

Я исправил заголовок, чтобы читать * милли * секунд вместо * микро * секунд, так как вы предоставили действительно миллисекунды (с эпохи Unix). –

ответ

6

Вы не сказали, но я могу догадаться, что эта величина на самом деле миллисекунды, измеренная от эпохи Unix. Таким образом, преобразовывать их с помощью UnixToDateTime из System.DateUtils блока:

{$APPTYPE CONSOLE} 

uses 
    System.SysUtils, 
    System.DateUtils; 

begin 
    Writeln(DateTimeToStr(UnixToDateTime(1475245457452 div 1000))); 
end. 

я разделил на 1000 преобразовать в секунды, потому что UnixToDateTime ожидает время в секундах, а не в миллисекундах. Если вы хотите сохранить миллисекунду часть времени, вы можете легко увеличить значение времени даты до конца деления.

Важно подчеркнуть, что время всегда измеряется в какой-либо единичной системе и относительно некоторого происхождения или эпохи. Этого никогда не бывает достаточно, чтобы знать только ценность, но вы должны знать как единицы, так и эпоху. Да, часто достаточно легко угадать их, но обычно было бы лучше прочитать спецификацию программного обеспечения, производящую значение времени, чтобы окончательно узнать, что такое значение.

+0

Спасибо! Это сулуция. – Pascal

+0

@Pascal, если это правильное решение, отметьте ответ как правильный –

Смежные вопросы