最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 時(shí)間與時(shí)間戳互轉(zhuǎn)的方法(13位)

 更新時(shí)間:2018年10月19日 10:35:35   作者:代碼描繪人生  
這篇文章主要介紹了C# 時(shí)間與時(shí)間戳互轉(zhuǎn)的方法(13位),詳細(xì)的介紹了常出現(xiàn)的幾種時(shí)間方式及其時(shí)間與時(shí)間戳互轉(zhuǎn)的方法,非常具有實(shí)用價(jià)值,希望此文章對(duì)各位有所幫助

目前經(jīng)常出現(xiàn)的時(shí)間有三個(gè):

  • 本地時(shí)間(locale time)
  • 格林威治時(shí)間(Greenwich Mean Time GMT)
  • 時(shí)間協(xié)調(diào)時(shí)間 (Universal Time Coordinated UTC)

時(shí)間標(biāo)準(zhǔn):

(1)世界時(shí)
世界時(shí)是最早的時(shí)間標(biāo)準(zhǔn)。在1884年,國(guó)際上將1s確定為全年內(nèi)每日平均長(zhǎng)度的1/8.64×104。以此標(biāo)準(zhǔn)形成的時(shí)間系統(tǒng),稱為世界時(shí)(UT1)。 1972年國(guó)際上開(kāi)始使用國(guó)際原子時(shí)標(biāo),從那以后,經(jīng)過(guò)格林威治老天文臺(tái)本初子午線的時(shí)間便被稱為世界時(shí)(UT2),或稱格林威治時(shí)間(GMT),UT2是對(duì)地球轉(zhuǎn)速周期性差異進(jìn)行校正后的世界時(shí)。

(2)原子時(shí)
1967年,人們利用銫原子振蕩周期極為規(guī)律的特性,研制出了高精度的原子時(shí)鐘,將銫原子能級(jí)躍遷輻射9192631770周所經(jīng)歷的時(shí)間定為1s。現(xiàn)在用的時(shí)間就是1971年10月定義的國(guó)際原子時(shí),是通過(guò)世界上大約200多臺(tái)原子 鐘進(jìn)行對(duì)比后,再由國(guó)際度量衡局時(shí)間所進(jìn)行數(shù)據(jù)處理,得出的統(tǒng)一的原子時(shí),簡(jiǎn)稱TAI。

(3)世界協(xié)調(diào)時(shí)
世界協(xié)調(diào)時(shí)是以地球自轉(zhuǎn)為基礎(chǔ)的時(shí)間標(biāo)準(zhǔn)。由于地球自轉(zhuǎn)速度并不均勻,并非每天都是精確的86400原子s,因而導(dǎo)致了自轉(zhuǎn)時(shí)間與世界時(shí)之間存在18個(gè)月有1s的誤差。為糾正這種誤差,國(guó)際地球自轉(zhuǎn)研究所根據(jù)地球自轉(zhuǎn)的實(shí)際情況對(duì)格林威治時(shí)間進(jìn)行增減閏s的調(diào)整,與國(guó)際度量衡局時(shí)間所聯(lián)合向全世界發(fā)布標(biāo)準(zhǔn)時(shí)間,這就是所謂的世界協(xié)調(diào)時(shí)(UTC:CoordinatdeUniversalTime)。UTC的表示方式為:年(y)、月(m)、日(d)、時(shí)(h)、分(min)、秒(s),均用數(shù)字表示。

GPS 系統(tǒng)中有兩種時(shí)間區(qū)分,一為UTC,另一為L(zhǎng)T(地方時(shí))兩者的區(qū)別為時(shí)區(qū)不同,UTC就是0時(shí)區(qū)的時(shí)間,地方時(shí)為本地時(shí)間,如北京為早上八點(diǎn)(東八區(qū)),UTC時(shí)間就為零點(diǎn),時(shí)間比北京時(shí)晚八小時(shí),以此計(jì)算即可

通過(guò)上面的了解,我們可以認(rèn)為格林威治時(shí)間就是時(shí)間協(xié)調(diào)時(shí)間(GMT=UTC),格林威治時(shí)間和UTC時(shí)間均用秒數(shù)來(lái)計(jì)算的。

/// <summary>
    /// 獲取時(shí)間戳
    /// </summary>
    /// <returns></returns>
    public static string GetTimeStamp(System.DateTime time)
    {
      long ts = ConvertDateTimeToInt(time);
      return ts.ToString();
    }
    /// <summary> 
    /// 將c# DateTime時(shí)間格式轉(zhuǎn)換為Unix時(shí)間戳格式 
    /// </summary> 
    /// <param name="time">時(shí)間</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調(diào)整為13位   
      return t;
    }
    /// <summary>    
    /// 時(shí)間戳轉(zhuǎn)為C#格式時(shí)間    
    /// </summary>    
    /// <param name=”timeStamp”></param>    
    /// <returns></returns>    
    private DateTime ConvertStringToDateTime(string timeStamp)
    {
      DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
      long lTime = long.Parse(timeStamp + "0000");
      TimeSpan toNow = new TimeSpan(lTime);
      return dtStart.Add(toNow);
    } 
 /// <summary>
  /// 時(shí)間戳
  /// </summary>
  public class TimeHelp
  {
    /// <summary>
    /// 獲取時(shí)間戳
    /// </summary>
    /// <returns></returns>
    public static string GetTimeStamp(System.DateTime time,int length=13)
    {
      long ts = ConvertDateTimeToInt(time);
      return ts.ToString().Substring(0,length);
    }
    /// <summary> 
    /// 將c# DateTime時(shí)間格式轉(zhuǎn)換為Unix時(shí)間戳格式 
    /// </summary> 
    /// <param name="time">時(shí)間</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調(diào)整為13位   
      return t;
    }
    /// <summary>    
    /// 時(shí)間戳轉(zhuǎn)為C#格式時(shí)間    
    /// </summary>    
    /// <param name=”timeStamp”></param>    
    /// <returns></returns>    
    public static DateTime ConvertStringToDateTime(string timeStamp)
    {
      DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
      long lTime = long.Parse(timeStamp + "0000");
      TimeSpan toNow = new TimeSpan(lTime);
      return dtStart.Add(toNow);
    }

    /// <summary>
    /// 時(shí)間戳轉(zhuǎn)為C#格式時(shí)間10位
    /// </summary>
    /// <param name="timeStamp">Unix時(shí)間戳格式</param>
    /// <returns>C#格式時(shí)間</returns>
    public static DateTime GetDateTimeFrom1970Ticks(long curSeconds)
    {
      DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
      return dtStart.AddSeconds(curSeconds);
    }

    /// <summary>
    /// 驗(yàn)證時(shí)間戳
    /// </summary>
    /// <param name="time"></param>
    /// <param name="interval">差值(分鐘)</param>
    /// <returns></returns>
    public static bool IsTime(long time, double interval)
    {
      DateTime dt = GetDateTimeFrom1970Ticks(time);
      //取現(xiàn)在時(shí)間
      DateTime dt1 = DateTime.Now.AddMinutes(interval);
      DateTime dt2 = DateTime.Now.AddMinutes(interval * -1);
      if (dt > dt2 && dt < dt1)
      {
        return true;
      }
      else {
        return false;
      }
    }

    /// <summary>
    /// 判斷時(shí)間戳是否正確(驗(yàn)證前8位)
    /// </summary>
    /// <param name="time"></param>
    /// <returns></returns>
    public static bool IsTime(string time)
    {
      string str = GetTimeStamp(DateTime.Now,8);
      if (str.Equals(time))
      {
        return true;
      }
      else {
        return false;
      }
    }
  }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

高淳县| 安多县| 历史| 阳东县| 常州市| 玛多县| 绩溪县| 汤原县| 彰化县| 抚顺市| 青岛市| 新巴尔虎左旗| 乐都县| 新巴尔虎右旗| 察雅县| 南宫市| 柏乡县| 诸暨市| 精河县| 蓝山县| 景洪市| 台北县| 漯河市| 纳雍县| 玛沁县| 健康| 海宁市| 楚雄市| 壤塘县| 洪江市| 河津市| 乌兰县| 大埔县| 元氏县| 澎湖县| 河间市| 黔南| 洛隆县| 张家界市| 东阳市| 丹寨县|