一、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"));
y 不包含紀元的年份。不具有前導零。
yy 不包含紀元的年份。具有前導零。
yyyy 包括紀元的四位數的年份。
M 月份數字。一位數的月份沒有前導零。
MM 月份數字。一位數的月份有一個前導零。
MMM 月份的縮寫名稱,在 AbbreviatedMonthNames 中定義。
MMMM 月份的完整名稱,在 MonthNames 中定義。
d 月中的某一天。一位數的日期沒有前導零。
dd 月中的某一天。一位數的日期有一個前導零。
ddd 周中某天的縮寫名稱,在 AbbreviatedDayNames 中定義。
dddd 周中某天的完整名稱,在 DayNames 中定義。
h 12 小時制的小時。一位數的小時數沒有前導零。
hh 12 小時制的小時。一位數的小時數有前導零。
H 24 小時制的小時。一位數的小時數沒有前導零。
HH 24 小時制的小時。一位數的小時數有前導零。
m 分鍾。一位數的分鍾數沒有前導零。
mm 分鍾。一位數的分鍾數有一個前導零。
s 秒。一位數的秒數沒有前導零。
ss 秒。一位數的秒數有一個前導零。
f 秒的小數精度為一位。其余數字被截斷。 如果時間為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);
結果輸出具體的中文星期幾
