C# DateTime類詳解

1.獲取時間


只需要使用 System 命名空間下的 DateTime 類即可完成

        Debug.Log(System.DateTime.Now);        // 當前本地時間 (年月日時分秒) -- 10/4/2018 9:38:19 PM
        Debug.Log(System.DateTime.UtcNow);     // 當前世界時間 (年月日時分秒) -- 10/4/2018 1:38:19 PM
        Debug.Log(System.DateTime.Now.Year);   // 當前時間 (年)
        Debug.Log(System.DateTime.Now.Month);  // 當前時間 (月)
        Debug.Log(System.DateTime.Now.Day);    // 當前時間 (日)
        Debug.Log(System.DateTime.Now.Hour);   // 當前時間 (時)
        Debug.Log(System.DateTime.Now.Minute); // 當前時間 (分)
        Debug.Log(System.DateTime.Now.Second); // 當前時間 (秒)

2 .字符串轉時間

DateTime 是一個十分強大的類

它幾乎可以實現你想要的所有功能(關於時間),無論是顯示還是對遊戲時間的處理

創建一個指定的時間,只需要在構造函數中初始化 年、月、日、時、分、秒 即可

格式化時間,顯示 需要用 yyyyMMddHH:mm:ss 來對應的格式化時間

    /// <summary> 
    /// 初始化函數
    /// </summary>
    void Start()
    {
        DateTime date1 = new DateTime();                    //    1/1/0001 12:00:00 AM —— 默認構造函數
        DateTime date2 = new DateTime(2008, 6, 6, 6, 6, 6); //    6/6/2008 6:06:06 AM —— 初始化 年、月、日、時、分、秒
        print(date2.ToString("yyyyMMddHH:mm:ss"));          //    2008060606:06:06 
        print(date2.ToString("yyyy-MM-dd★HH→mm☆ss"));     //    2008-06-06★06→06☆06 —— DateTime.ToString(String)使用自定義方式格式化日期字符串
        DateTime date3 = DateTime.Now;                      //    10/4/2018 12:43:41 AM —— 當前 本地時間
        DateTime date4 = DateTime.UtcNow;                   //    10/3/2018 4:43:41 PM —— 當前 協調世界時間
        DateTime date5 = DateTime.Today;                    //    10/4/2018 12:00:00 AM —— 今天 
    }

3.日期時間聲明、格式化

DateTime 爲我們提供了一個字符串轉換爲 DateTime 對象的解決方案

可以將固定格式的字符串轉爲時間類對象

字符串轉世界時間:20080606T06:06:06Z→→ 6/6/2008 2:06 PM
字符串轉本地時間:20080606T06:06:06Z→→ 6/6/2008 6:06 AM
字符串只有年份:2008→→ 1/1/2008 12:00 AM 會自動默認 1月1號 中午12點

    /// <summary> 
    /// 初始化函數
    /// </summary>
    void Start()
    {
        string   iso8601String1 = "20080606T06:06:06Z";                                                                                          //    字符串中包含 T 、Z
        DateTime date1ISO8602   = DateTime.ParseExact(iso8601String1, "yyyyMMddTHH:mm:ssZ", System.Globalization.CultureInfo.CurrentCulture);    //    字符串帶 T、Z:將字符串轉爲 DateTime 類型,時間是協調世界時間
        print(string.Format("{0} --> {1:g}", iso8601String1, date1ISO8602));                                                                     //    20080606T06:06:06Z --> 6/6/2008 2:06 PM
        string   iso8601String2 = "2008-06-06-06:06:06";                                                                                         //    字符串中 不包含 T 、Z
        DateTime date2ISO8602   = DateTime.ParseExact(iso8601String2, "yyyy-MM-dd-HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture); //    將固定格式的字符串格式化,並轉爲 DateTime 類型 時間是本地時間
        print(string.Format("{0} --> {1:g}", iso8601String2, date2ISO8602));                                                                     //    2008-06-06-06:06:06 --> 6/6/2008 6:06 AM
        string   iso8601String3 = "2008";                                                                                                        //    字符串中 只有年份
        DateTime date2ISO8603   = DateTime.ParseExact(iso8601String3, "yyyy", System.Globalization.CultureInfo.InvariantCulture);                //    如果不寫月份日期具體時間,會默認 1月1號 12點
        print(string.Format("{0} --> {1}", iso8601String3, date2ISO8603));                                                                       //    2008 --> 1/1/2008 12:00:00 AM
    }

4.時間間隔

兩個不同的 DateTime 對象是可以相減的 (注意:不可以相加 )

得到一個 TimeSpan (時間間隔) 對象

    /// <summary> 
    /// 初始化函數
    /// </summary>
    void Start()
    {
        DateTime date1 = new DateTime(2008, 6, 6, 6, 6, 6); //2008年6月6號6時6分6秒
        DateTime date2 = new DateTime(2008, 6, 8, 6, 6, 5); //2008年6月8號6時6分5秒
        TimeSpan span1 = date2 - date1;                     //相減 返回 TimeSpan(時間間隔) 對象
        print(span1);                                       //1.23:59:59 —— 相差 1天 23小時59分59秒

        TimeSpan span = new TimeSpan(1, 1, 1, 1, 1); //也可自己聲明一個 多個構造函數自己選,最大支持天,最小支持微秒
        print("span:" + span);                       //span:1.01:01:01.0010000
    }

5.DateTime 微軟官方文檔


由於功能太多, 僅列舉了常用的幾個

想要了解更多,請到微軟官方查看文檔

DateTime 微軟官方文檔 (新手必備!)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章