[.NET]仿Unix Time的TimeStamp

  • 5766
  • 0

[.NET]仿Unix Time的TimeStamp

前言
在設計API給外部呼叫時,很常會用到時間戳記(TimeStamp),不管是用來確保本地端與遠端的順序或同步,或是用來檢查該訊息是否過期,或是拿來當加密的動態資料區塊。了解時戳的意義、目的後,要設計就真的是簡單到不行了。

時戳在wiki上的說明

時間戳記(Timestamp)是指在一連串的資料中加入辨識文字,如時間或日期,用以保障本地端(local)資料更新順序與遠端(remote)一致。

 

Unix Time在wiki上的說明

UNIX時間,或稱POSIX時間是UNIX類UNIX系統使用的時間表示方式:從協調世界時1970年1月1日000秒起至現在的總秒數,不包括閏秒

 

範例
需求就是取時戳的時間,是距離1970年1月1日多少秒數。(以Int32來說,該時戳可以用到2038年1月19日。)


    /// <summary>
    /// 產生現在的TimeStatmp
    /// </summary>
    public static class TimeStampGenerator
    {
        /// <summary>
        /// Gets the current time stamp.
        /// </summary>
        /// <returns>時戳</returns>
        public static string GetCurrentTimeStamp()
        {
            ////產生1970 - Now 的span
            TimeSpan span = DateTime.Now.ToLocalTime() - new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime();

            ////回傳TotalSecond
            return Convert.ToInt32(span.TotalSeconds).ToString();
        }
    }


結論
這一篇也只是一個memo,給沒做過時戳的朋友當一個參考。


blog 與課程更新內容,請前往新站位置:http://tdd.best/