2016-09-30 185 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如果這是正確的解決方案,請將答案標記爲正確 –