DateTime時間類型的一些常用方法


一、DateTime 的構造函數(12個構造重載)

 DateTime time = new DateTime();

* 1.DateTime(Int64)
:將 DateTime 結構的新實例初始化為指定的刻度數。

* 2.DateTime(Int64, DateTimeKind)
:將 DateTime 結構的新實例初始化為指定的計時周期數以及協調世界時 (UTC) 或本地時間。

* 3.DateTime(Int32, Int32, Int32)
:將 DateTime 結構的新實例初始化為指定的年、月和日。

* 4.DateTime(Int32, Int32, Int32, Calendar)
:將 DateTime 結構的新實例初始化為指定日歷的指定年、月和日。

* 5.DateTime(Int32, Int32, Int32, Int32, Int32, Int32)
:將 DateTime 結構的新實例初始化為指定的年、月、日、小時、分鍾和秒。

* 6.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)
:將 DateTime 結構的新實例初始化為指定年、月、日、小時、分鍾、秒和協調世界時 (UTC) 或本地時間。

* 7.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Calendar)
:將 DateTime 結構的新實例初始化為指定日歷的年、月、日、小時、分鍾和秒。

* 8.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32)
:將 DateTime 結構的新實例初始化為指定的年、月、日、小時、分鍾、秒和毫秒。

* 9.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, DateTimeKind)
:將 DateTime 結構的新實例初始化為指定年、月、日、小時、分鍾、秒、毫秒和協調世界時 (UTC) 或本地時間。

* 10.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar)
:將 DateTime 結構的新實例初始化為指定日歷的指定年、月、日、小時、分鍾、秒和毫秒。

* 11.DateTime(Int32, Int32, Int32, Int32, Int32, Int32, Int32, Calendar, DateTimeKind)
:將 DateTime 結構的新實例初始化為指定日歷的指定年、月、日、小時、分鍾、秒、毫秒和協調世界時 (UTC) 或本地時間。

 

應用:

比如我要得到本月一號的時間可以這樣寫:

DateTime time = new DateTime(DateTime.Now.Year,DateTime.Now.Month,01);  //2020/11/1 0:00:00

上個月的一號:

DateTime time = new DateTime(DateTime.Now.Year,DateTime.Now.Month,01).AddMonths(-1); //2020/10/1 0:00:00

 

二、 YYYY-mm-dd HH:MM:SS解釋

 輸出:2020:11:06 11:20:51

 DateTime t = DateTime.Now;
 Console.WriteLine(t.ToString("yyyy:MM:dd HH:mm:ss"));

 

           不包含紀元的年份。不具有前導零。 
yy           不包含紀元的年份。具有前導零。 
yyyy        包括紀元的四位數的年份。 

           月份數字。一位數的月份沒有前導零。 
MM          月份數字。一位數的月份有一個前導零。 
MMM       月份的縮寫名稱,在 AbbreviatedMonthNames 中定義。 
MMMM    月份的完整名稱,在 MonthNames 中定義。 

d              月中的某一天。一位數的日期沒有前導零。 
dd            月中的某一天。一位數的日期有一個前導零。 
ddd          周中某天的縮寫名稱,在 AbbreviatedDayNames 中定義。 
dddd        周中某天的完整名稱,在 DayNames 中定義。 

         12 小時制的小時。一位數的小時數沒有前導零。 
hh         12 小時制的小時。一位數的小時數有前導零。 
        24 小時制的小時。一位數的小時數沒有前導零。 
HH        24 小時制的小時。一位數的小時數有前導零。 

        分鍾。一位數的分鍾數沒有前導零。 
mm       分鍾。一位數的分鍾數有一個前導零。 

          秒。一位數的秒數沒有前導零。 
ss          秒。一位數的秒數有一個前導零。 
          秒的小數精度為一位。其余數字被截斷。 如果時間為2013-05-20 14:02:30 yyyy-MM-dd HH:mm:ss ;如果格式為yyyy-MM-dd hh:mm:ss 則顯示為2013-05-20 02:02:30

gg 時期或紀元。 

三、 比較時間

1、例如有個需求是開始時間與結束時間不能超過1天,你會這么判斷?

     解決方法:

     可以使用c#提供的方法TotalHours來解決

    

            DateTime time1 = DateTime.Now;
            DateTime time2 = DateTime.Now.AddDays(1);

            if ((time2 - time1).TotalHours<=24)
            {

            }

 

 兩個時間的差值還有很多方法:可以根據需求具體使用

 

四、 時間轉換成星期

1、給你一個時間,判斷是星期幾?

 可以使用 DateTime.Now.DayOfWeek ,DayOfWeek輸出的是英文的星期幾,如果要顯示中文,我們可以寫一個枚舉

  public enum Week
        {
            星期天 = 0,
            星期一,
            星期二,
            星期三,
            星期四,
            星期五,
            星期六
        }

然后把DayOfWeek強轉成Week枚舉類型

            var t = DateTime.Now.DayOfWeek; 
            
            Console.WriteLine((Week)t);

結果輸出具體的中文星期幾

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM