一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - C# - C# 時間與時間戳互轉(zhuǎn)的方法(13位)

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

2022-03-02 14:29代碼描繪人生 C#

這篇文章主要介紹了C# 時間與時間戳互轉(zhuǎn)的方法(13位),詳細(xì)的介紹了常出現(xiàn)的幾種時間方式及其時間與時間戳互轉(zhuǎn)的方法,非常具有實(shí)用價(jià)值,希望此文章對各位有所幫助

目前經(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),時間比北京時晚八小時,以此計(jì)算即可

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/// <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);
    }
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/// <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í)有所幫助,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://www.cnblogs.com/testsec/p/6095945.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: www.四色| 国色天香社区视频在线观看免费完整版 | 国产欧美一区二区三区久久 | 午夜精品久视频在线观看 | 国产拍拍视频一二三四区 | 麻豆网 | 色综合亚洲天天综合网站 | 99精品国产高清一区二区三区香蕉 | 日本熟hdx| 国产综合图区 | 五月天国产精品 | 五月婷婷伊人网 | 国产精品原创永久在线观看 | 1024国产精品视频观看 | 亚洲成人99 | 欧美第一视频 | 国产午夜精品久久理论片小说 | 免费精品在线视频 | 四虎影院永久网站 | 91蜜桃| 桥本有菜在线四虎福利网 | 操b图片| 亚洲国产美女精品久久 | 国产精品免费看香蕉 | 91蜜桃| 成年私人影院免费视频网站 | 日本黄色大片免费观看 | 草馏社区最新1024 | 狠狠色成人综合网图片区 | 日韩视频一区 | 美女流白浆 | 侵犯小男生免费视频网站 | 欧美日韩亚洲区久久综合 | 热巴在公交车h文 | 华人亚洲欧美精品国产 | 亚洲欧美日韩综合在线播放 | 国产卡一卡二卡三卡四 | 国产精品青青青高清在线观看 | tiny4k欧美极品在线 | 日韩一区在线观看 | 青柠影视在线播放观看高清 |