DateTime和TimeStamp

1. Unix時間戳

  1. Unix時間戳(Unix timestamp),或稱Unix時間(Unix time)、POSIX時間(POSIX time),是一種時間表示方式,定義爲從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。Unix時間戳不僅被使用在Unix系統、類Unix系統中,也在許多其他操作系統中被廣泛採用。
  2. 目前相當一部分操作系統使用32位二進制數字表示時間。此類系統的Unix時間戳最多可以使用到格林威治時間2038年01月19日03時14分07秒(二進制:01111111 11111111 11111111 11111111)。其後一秒,二進制數字會變爲10000000 00000000 00000000 00000000,發生溢出錯誤,造成系統將時間誤解爲1901年12月13日20時45分52秒。這很可能會引起軟件故障,甚至是系統癱瘓。

2.js中獲取當前時間的時間戳

第一種方法:獲取毫秒數,但是毫秒位全是0,本質上是精確到秒的毫秒數(相當於 1000*Unix時間戳);

var timestamp = Date.parse(new Date()); 

第二種方法:精確到毫秒數

var timestamp = (new Date()).valueOf();

或者

var timestamp=new Date().getTime();

3.jQuery 獲取時間戳 $.now()

var timestamp = $.now();

4.c#中DateTime轉化爲Unix時間戳

    /// <summary>
    /// 將DateTime轉化爲UnixTimeStamp
    /// </summary>
    /// <param name="dateTime"></param>
    /// <returns></returns>
    public static long ChangeDateTimeToUnixTimeStamp(DateTime dateTime)
    {
        System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); 
        return (long)(dateTime - startTime).TotalSeconds; 
    }

5.c#中Unix時間戳轉化爲DateTime

    /// <summary>
    /// 將unixTimeStamp轉化爲DateTime
    /// </summary>
    /// <param name="unixTimeStamp"></param>
    /// <returns></returns>
    public static DateTime ChangeUnixTimeStampToDateTime(long unixTimeStamp)
    {
        System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1)); 
       return startTime.AddSeconds(unixTimeStamp);
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章