Datetime 與 Unix 時間戳記轉換

在NET語言中,與時間有關係的方法都會使用 DateTime 來處理,它提供完整的時間轉換與提取方法。

不過有時候在提取某些時間戳記時,卻是一個長整數。這個長整數通常使用 Unix 的時間格式來顯示。

數字的部分是從 1970年01月01日開始計算起,所以只要把從這個時間起的秒數加上,就能得到 DataTime。


Unix 時間戳記轉換為 C# 時間格式

[code lang=”csharp”]
public static DateTime UnixTimeStampToDateTime( double unixTimeStamp )
{
// Unix timestamp is seconds past epoch
System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
dtDateTime = dtDateTime.AddSeconds( unixTimeStamp ).ToLocalTime();
return dtDateTime;
}
[/code]

由 DateTime 秒數轉換為 Unix timestamp

[code lang=”csharp”]
public static DateTime JavaTimeStampToDateTime(double javaTimeStamp)
{
// Java timestamp is millisecods past epoch
System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
dtDateTime = dtDateTime.AddSeconds(Math.Round(javaTimeStamp / 1000)).ToLocalTime();
return dtDateTime;
}
[/code]

其他參考

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *