時間戳

1.概念:時間戳是指格林威治時間自1970年1月1日(00:00:00 GMT)至當前時間的總秒數。它也被稱爲Unix時間戳(Unix Timestamp)。通俗的講,時間戳是一份可以表示一份數據在一個特定時間點已經存在的完整的可驗證的數據。是一個時間字段,每次增長數據時,填入當前的時間值   是爲了數據倉庫中ETL部分的增量抽取模型而創建的,也就是說:「有了時間戳,我上個星期的數據已經加載好了,我如今須要增量加載這個星期的數據,該怎麼辦呢?最好的辦法就是把那些時間戳字段的時間值大於上個星期週日的時間就加載,其餘的數據就不用加載!說得通俗一些,時間戳就是根據當前系統時間生成的一組隨機數字。時間戳通常做爲對數據惟一性的一種判斷依據c#

2.時間戳的分類服務器

    一、自建時間戳:此類時間戳是經過時間接收設備(如GPS,CDMA,北斗衛星)來獲取時間到時間戳服務器上,並經過時間戳服務器簽發時間戳證書。此種時間戳可用來企業內部責任認定,在法庭認證是並不具有法律效力。因其在經過時間接收設備接收時間存在被篡改的可能,故此不能做爲法律依據。編碼

    二、具備法律的效力的時間戳:它是由我國中科院國家授時中心與北京聯合信任技術服務有限公司負責建設的我國第三方可信時間戳認證服務。由國家授時中心負責時間的授時與守時檢測,因其守時監測功能而保障時間錯證書中的時間的正確性和不被篡改。獲取時間戳平臺有「大衆版權保護平臺」,可與我國中科院授時中心時間同步。加密

3.時間戳的組成部分文檔

    時間戳(time-stamp)是一個經加密後造成的憑證文檔,它包括三個部分:同步

        一、需加時間戳的文件的摘要(digest)string

        二、DTS收到文件的日期和時間io

        三、DTS的數字簽名隨機數

    通常來講,時間戳產生的過程爲:用戶首先將須要加時間的文件用Hash編碼加密造成摘要,而後將該摘要發送到DTS,DTS在加入了收到文件摘要的日期和時間信息後再對該文件加密(數字簽名),而後送回用戶。im

    書面簽署文件的時間是由簽署人知己寫上的,而數字時間戳則否則,它是有認證單位DTS來加的,以DTS收到文件的時間爲依據

 

4.使用:

#region 獲取時間戳
/// 獲取時間戳
/// </summary>
/// <returns></returns>
public static string GetTimeStamp(System.DateTime time)
{
long ts = ConvertDateTimeToInt(time);
return ts.ToString();
}

/// <summary>
/// 將c# DateTime時間格式轉換爲Unix時間戳格式
/// </summary>
/// <param name="time">時間</param>
/// <returns>long</returns>
public static long ConvertDateTimeToInt(System.DateTime time)
{
System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1, 0, 0, 0, 0));
long t = (time.Ticks - startTime.Ticks) / 10000; //除10000調整爲13位
return t;
}
#endregion

//使用時間戳 string TIMESTAMP = GetTimeStamp(DateTime.Now);

相關文章
相關標籤/搜索