時間TimeHelper和unix時間戳
阿新 • • 發佈:2021-12-17
Unix時間戳(Unix timestamp),或稱Unix時間(Unix time)、POSIX時間(POSIX time),是一種時間表示方式,
定義為從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。
Unix時間戳不僅被使用在Unix系統、類Unix系統中,也在許多其他作業系統中被廣泛採用。
unix時間戳是從1970年1月1日(UTC/GMT的午夜)開始所經過的秒數,不考慮閏秒。
Unix時間戳(英文為Unix epoch, Unix time, POSIX time 或 Unix timestamp)
UNIX時間戳的0按照ISO 8601規範為 :1970-01-01T00:00:00Z.
一個小時表示為UNIX時間戳格式為:3600秒;一天表示為UNIX時間戳為86400秒,閏秒不計算。
在大多數的UNIX系統中UNIX時間戳儲存為32位,這樣會引發2038年問題或Y2038。
/// <summary> /// 時間幫助類 /// </summary> public class TimeHelper { /// <summary> /// 把時間格式轉換為Unix時間戳格式 /// </summary> /// <param name=”time”></param> /// <returns></returns> public static long ConvertDateTimeByUnix(DateTime time) { DateTime startTime= TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 當地時區 long timeStamp = (long)(DateTime.Now - startTime).TotalSeconds; // 相差秒數 return timeStamp; } /// <summary> /// 把Unix時間戳轉化為時間 /// </summary> /// <param name="unixTimeStamp"></param>/// <returns></returns> public static DateTime GetTimeByUnix(long unixTimeStamp) { DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1)); // 當地時區 DateTime dt = startTime.AddSeconds(unixTimeStamp); return dt; } }