欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

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

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

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

/// <summary>
    /// 獲取時間戳
    /// </summary>
    /// <returns></returns>
    public static string GetTimeStamp(System.DateTime time)
    {
      long ts = ConvertDateTimeToInt(time);
      return ts.ToString();
    }
    /// <summary> 
    /// 將c# DateTime時間格式轉(zhuǎn)換為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調(diào)整為13位   
      return t;
    }
    /// <summary>    
    /// 時間戳轉(zhuǎn)為C#格式時間    
    /// </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>
  /// 時間戳
  /// </summary>
  public class TimeHelp
  {
    /// <summary>
    /// 獲取時間戳
    /// </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時間格式轉(zhuǎn)換為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調(diào)整為13位   
      return t;
    }
    /// <summary>    
    /// 時間戳轉(zhuǎn)為C#格式時間    
    /// </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>
    /// 時間戳轉(zhuǎn)為C#格式時間10位
    /// </summary>
    /// <param name="timeStamp">Unix時間戳格式</param>
    /// <returns>C#格式時間</returns>
    public static DateTime GetDateTimeFrom1970Ticks(long curSeconds)
    {
      DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
      return dtStart.AddSeconds(curSeconds);
    }

    /// <summary>
    /// 驗(yàn)證時間戳
    /// </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)在時間
      DateTime dt1 = DateTime.Now.AddMinutes(interval);
      DateTime dt2 = DateTime.Now.AddMinutes(interval * -1);
      if (dt > dt2 && dt < dt1)
      {
        return true;
      }
      else {
        return false;
      }
    }

    /// <summary>
    /// 判斷時間戳是否正確(驗(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;
      }
    }
  }

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

相關(guān)文章

  • WinForm實(shí)現(xiàn)最小化到系統(tǒng)托盤方法實(shí)例詳解

    WinForm實(shí)現(xiàn)最小化到系統(tǒng)托盤方法實(shí)例詳解

    這篇文章主要介紹了WinForm實(shí)現(xiàn)最小化到系統(tǒng)托盤方法,實(shí)例分析了C#中實(shí)現(xiàn)WinForm最小化到系統(tǒng)托盤所需的相關(guān)控件與使用技巧,需要的朋友可以參考下
    2015-05-05
  • 深入淺出23種設(shè)計模式

    深入淺出23種設(shè)計模式

    本文給大家詳解23種設(shè)計模式,理解設(shè)計模式有助于在程序開發(fā)過程中靈活應(yīng)用,需要的朋友可以參考下
    2015-08-08
  • 圖文詳解C#中的協(xié)變與逆變

    圖文詳解C#中的協(xié)變與逆變

    “協(xié)變”是指能夠使用與原始指定的派生類型相比,派生程度更大的類型,“逆變”則是指能夠使用派生程度更小的類型,這篇文章主要給大家介紹了關(guān)于C#中協(xié)變與逆變的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • C#最簡單的字符串加密解密方法

    C#最簡單的字符串加密解密方法

    這篇文章主要介紹了C#最簡單的字符串加密解密方法,本文直接給出實(shí)例代碼,需要的朋友可以參考下
    2015-05-05
  • C#中各種計時器用法小結(jié)

    C#中各種計時器用法小結(jié)

    這篇文章主要介紹了C#中各種計時器用法,結(jié)合實(shí)例形式總結(jié)分析了C#中各種常用時間相關(guān)類實(shí)現(xiàn)計時器功能的操作技巧,需要的朋友可以參考下
    2017-06-06
  • C#事件處理和委托event delegate實(shí)例簡述

    C#事件處理和委托event delegate實(shí)例簡述

    這篇文章主要介紹了C#事件處理和委托event delegate的簡單實(shí)例,較為詳細(xì)的講述了C#事件處理和委托的聲明與實(shí)現(xiàn)過程,代碼簡單易懂,需要的朋友可以參考下
    2014-09-09
  • C#實(shí)現(xiàn)Array,List,Dictionary相互轉(zhuǎn)換

    C#實(shí)現(xiàn)Array,List,Dictionary相互轉(zhuǎn)換

    這篇文章介紹了C#實(shí)現(xiàn)Array,List,Dictionary互相轉(zhuǎn)換的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#中如何在Excel工作表創(chuàng)建混合型圖表實(shí)例

    C#中如何在Excel工作表創(chuàng)建混合型圖表實(shí)例

    本篇文章主要介紹了C#中如何在Excel工作表創(chuàng)建混合型圖表實(shí)例,具有一定的參考價值,有需要的可以了解一下。
    2016-11-11
  • c# 將Datatable數(shù)據(jù)導(dǎo)出到Excel表格中

    c# 將Datatable數(shù)據(jù)導(dǎo)出到Excel表格中

    本文主要介紹了c# 將Datatable數(shù)據(jù)導(dǎo)出到Excel表格中的方法。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • C# 動態(tài)加載程序集信息

    C# 動態(tài)加載程序集信息

    在設(shè)計模式的策略模式中,需要動態(tài)加載程序集信息,本文通過一個簡單的實(shí)例,來講解動態(tài)加載Dll需要的知識點(diǎn)。下面跟著小編一起來看下吧
    2017-03-03

最新評論