У меня на этот раз с сервера: 1475245457452 о дате и времени для этого: 30.9.2016, 16:24:17Как преобразовать дату миллисекунд в DateTime?
Как я могу преобразовать этот 1475245457452 в Delphi для правильной даты и времени?
У меня на этот раз с сервера: 1475245457452 о дате и времени для этого: 30.9.2016, 16:24:17Как преобразовать дату миллисекунд в DateTime?
Как я могу преобразовать этот 1475245457452 в Delphi для правильной даты и времени?
Вы не сказали, но я могу догадаться, что эта величина на самом деле миллисекунды, измеренная от эпохи Unix. Таким образом, преобразовывать их с помощью UnixToDateTime
из System.DateUtils
блока:
{$APPTYPE CONSOLE}
uses
System.SysUtils,
System.DateUtils;
begin
Writeln(DateTimeToStr(UnixToDateTime(1475245457452 div 1000)));
end.
я разделил на 1000
преобразовать в секунды, потому что UnixToDateTime
ожидает время в секундах, а не в миллисекундах. Если вы хотите сохранить миллисекунду часть времени, вы можете легко увеличить значение времени даты до конца деления.
Важно подчеркнуть, что время всегда измеряется в какой-либо единичной системе и относительно некоторого происхождения или эпохи. Этого никогда не бывает достаточно, чтобы знать только ценность, но вы должны знать как единицы, так и эпоху. Да, часто достаточно легко угадать их, но обычно было бы лучше прочитать спецификацию программного обеспечения, производящую значение времени, чтобы окончательно узнать, что такое значение.
Спасибо! Это сулуция. – Pascal
@Pascal, если это правильное решение, отметьте ответ как правильный –
Вы проверили блок 'DateUtils'? –
Я снова пометил ваш вопрос, угадывая вашу версию. Нет XE10. Я предполагаю, что это Берлин, но это не повлияет ни на что. –
Я исправил заголовок, чтобы читать * милли * секунд вместо * микро * секунд, так как вы предоставили действительно миллисекунды (с эпохи Unix). –