[.NET]仿Unix Time的TimeStamp
前言
在設計API給外部呼叫時,很常會用到時間戳記(TimeStamp),不管是用來確保本地端與遠端的順序或同步,或是用來檢查該訊息是否過期,或是拿來當加密的動態資料區塊。了解時戳的意義、目的後,要設計就真的是簡單到不行了。
時戳在wiki上的說明
時間戳記(Timestamp)是指在一連串的資料中加入辨識文字,如時間或日期,用以保障本地端(local)資料更新順序與遠端(remote)一致。
UNIX時間,或稱POSIX時間是UNIX或類UNIX系統使用的時間表示方式:從協調世界時1970年1月1日0時0分0秒起至現在的總秒數,不包括閏秒。
範例
需求就是取時戳的時間,是距離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/