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