真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在C#中將時間與時間戳進(jìn)行轉(zhuǎn)換

這期內(nèi)容當(dāng)中小編將會給大家?guī)碛嘘P(guān)怎么在C#中將時間與時間戳進(jìn)行轉(zhuǎn)換,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)建站為客戶提供專業(yè)的做網(wǎng)站、成都網(wǎng)站制作、程序、域名、空間一條龍服務(wù),提供基于WEB的系統(tǒng)開發(fā). 服務(wù)項目涵蓋了網(wǎng)頁設(shè)計、網(wǎng)站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、手機網(wǎng)站開發(fā)等網(wǎng)站方面業(yè)務(wù)。

目前經(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?,F(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)的實際情況對格林威治時間進(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ū)的時間,地方時為本地時間,如北京為早上八點(東八區(qū)),UTC時間就為零點,時間比北京時晚八小時,以此計算即可

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

/// 
    /// 獲取時間戳
    /// 
    /// 
    public static string GetTimeStamp(System.DateTime time)
    {
      long ts = ConvertDateTimeToInt(time);
      return ts.ToString();
    }
    ///  
    /// 將c# DateTime時間格式轉(zhuǎn)換為Unix時間戳格式 
    ///  
    /// 時間 
    /// long 
    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;
    }
    ///     
    /// 時間戳轉(zhuǎn)為C#格式時間    
    ///     
    ///     
    ///     
    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);
    }
 /// 
  /// 時間戳
  /// 
  public class TimeHelp
  {
    /// 
    /// 獲取時間戳
    /// 
    /// 
    public static string GetTimeStamp(System.DateTime time,int length=13)
    {
      long ts = ConvertDateTimeToInt(time);
      return ts.ToString().Substring(0,length);
    }
    ///  
    /// 將c# DateTime時間格式轉(zhuǎn)換為Unix時間戳格式 
    ///  
    /// 時間 
    /// long 
    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;
    }
    ///     
    /// 時間戳轉(zhuǎn)為C#格式時間    
    ///     
    ///     
    ///     
    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);
    }

    /// 
    /// 時間戳轉(zhuǎn)為C#格式時間10位
    /// 
    /// Unix時間戳格式
    /// C#格式時間
    public static DateTime GetDateTimeFrom1970Ticks(long curSeconds)
    {
      DateTime dtStart = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1));
      return dtStart.AddSeconds(curSeconds);
    }

    /// 
    /// 驗證時間戳
    /// 
    /// 
    /// 差值(分鐘)
    /// 
    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;
      }
    }

    /// 
    /// 判斷時間戳是否正確(驗證前8位)
    /// 
    /// 
    /// 
    public static bool IsTime(string time)
    {
      string str = GetTimeStamp(DateTime.Now,8);
      if (str.Equals(time))
      {
        return true;
      }
      else {
        return false;
      }
    }
  }

C#是什么

C#是一個簡單、通用、面向?qū)ο蟮木幊陶Z言,它由微軟Microsoft開發(fā),繼承了C和C++強大功能,并且去掉了一些它們的復(fù)雜特性,C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程從而成為.NET開發(fā)的首選語言,但它不適用于編寫時間急迫或性能非常高的代碼,因為C#缺乏性能極高的應(yīng)用程序所需要的關(guān)鍵功能。

上述就是小編為大家分享的怎么在C#中將時間與時間戳進(jìn)行轉(zhuǎn)換了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文名稱:怎么在C#中將時間與時間戳進(jìn)行轉(zhuǎn)換
網(wǎng)址分享:http://weahome.cn/article/ggjhsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部