2016-09-30 184 views
0

我有这个时间从服务器:1475245457452 日期和时间的是这样的:2016年9月30日,16时24分十七秒如何将毫秒数转换为DateTime?

我怎么能转换这个1475245457452在德尔福的正确日期和时间?

+0

你有没有签出'DateUtils'单元? –

+0

我重新标记了你的问题猜测你的版本。没有XE10。我的猜测是柏林,但这两种方式都没有什么不同。 –

+2

由于您提供的值确实是毫秒(来自Unix时代),所以我将头部更正为* milli *秒而不是* micro *秒。 –

回答

6

你没有说,但我可以猜测,这个数量实际上是从Unix纪元测量的毫秒数。因此,使用UnixToDateTimeSystem.DateUtils单元将它们转换:

{$APPTYPE CONSOLE} 

uses 
    System.SysUtils, 
    System.DateUtils; 

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

我已经1000分转换成秒,因为UnixToDateTime预计秒,而不是毫秒的时间。 如果您希望保留毫秒部分的时间,那么您可以轻松地将日期时间值递增到除法的其余部分。

重要的是要强调,时间总是在某个单位系统中测量的,并且相对于某个起源或时代而言。仅仅知道一个价值是不够的,但你必须知道单位和时代。是的,通常很容易猜到这些,但通常阅读产生时间价值的软件规格以更清楚地了解其价值通常会更好。

+0

谢谢!这是苏禄。 – Pascal

+0

@Pascal如果这是正确的解决方案,请将答案标记为正确 –