C# UnixTime

最近call 很多 api ,發現其中一個參數都會使用時間搓(unixTime),會使用unixTime主要是因為有時區的問題。

其實.net framewordk4.6以上 已經有方法可以直接取出

//.net 4.6
long unixTime = ((DateTimeOffset)foo).ToUnixTimeSeconds();

但若是4.6以下並沒有ToUnixTimeSeconds() 這個方法

因此

//.net 4.6 以下
string unixTime = ("" + (DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds).Split('.').First();

為什麼要split('.')且取第一個數值是因為算出來的unixTime會有小數點

其實時間搓只需要前10碼,所以將split('.') 來取得前10碼


時間搓介紹 及 查詢時間搓 : https://www.cadch.com/article/timestamp/index.php