2019年1月10日 星期四

[C#] 時間轉換為Unix TimeStamp

[C#] 時間轉換為Unix TimeStamp

簡介

Unix TimeStamp為格林威治時間1970年1月1日00:00:00到當前時間的秒數。

.Net Framework 4.6

.NET Framework 4.6開始在DateTimeOffSet的型別加入了產生Unix TimeStamp的轉換函式

ToUnixTimeSeconds()

取得自 1970-01-01T00:00:00Z 以來所經過的秒數。

DateTimeOffset.Now.ToUnixTimeSeconds();
// 1547105203
DateTimeOffset.UtcNow.ToUnixTimeSeconds();
// 1547105203

FromUnixTimeSeconds()

將自 1970-01-01T00:00:00Z 以來所經過的 Unix 時間 (以秒數表示),轉換成 DateTimeOffset 值。

var unixTimeSec = DateTimeOffset.Now.ToUnixTimeSeconds();
var dt = DateTimeOffset.FromUnixTimeSeconds(unixTimeSec);


.Net Framework 4.5 以下

時間轉成Unix TimeStamp

int unixTimeSec = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds;
// 1547106530

Unix TimeStamp轉成時間(UTC)

DateTime dt = (new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).AddSeconds(unixTimeSec);
// 2019/1/10 上午 07:48:50


如有錯誤或建議,歡迎留言指教,謝謝!!
(相關內容如有侵犯隱私或著作權,請協助通知刪除,感謝)

沒有留言:

張貼留言