標籤:style blog http java color 資料
基於.net的應用中,不會用到unix時間戳記,當.net應用與其它應用(eg: php, java)互動時,就會用到unix時間戳記。在項目中曾經用到過一次,使用者通過web app提交資料並分享給安卓app時,如果時間間隔在一分鐘內,資料才能算是真實有效,否則不予處理。還有asp.net開發中,經常會需要將對象序列化成json資料,js拼接成html,日期對象就會被序列化成如下形式:{“date”:”\/Date(1349839763373)\/”},js還無法識別,這時就不妨考慮下將日期轉換成unix時間戳記。
以下是C#下的日期與unix時間戳記的相互轉換:
/// <summary>/// 日期轉換成unix時間戳記/// </summary>/// <param name="dateTime"></param>/// <returns></returns>public static long DateTimeToUnixTimestamp(DateTime dateTime){ var start = new DateTime(1970, 1, 1, 0, 0, 0, dateTime.Kind); return Convert.ToInt64((dateTime - start).TotalSeconds);}/// <summary>/// unix時間戳記轉換成日期/// </summary>/// <param name="unixTimeStamp">時間戳記(秒)</param>/// <returns></returns>public static DateTime UnixTimestampToDateTime(this DateTime target, long timestamp){ var start = new DateTime(1970, 1, 1, 0, 0, 0, target.Kind); return start.AddSeconds(timestamp);}
說下這個日期(1970-1-1),現在電腦和一些電子裝置時間的計算和顯示是以距曆元(即格林威治標準時間 1970 年 1 月 1 日的 00:00:00.000,格里高利曆)的位移量為標準的,有人就戲稱英國的格林威治天文台是“時間開始的地方”。
附:
1. 各語言的時間戳記轉換:http://www.epochconverter.com/
2. unix時間介紹:http://en.wikipedia.org/wiki/Unix_time