C# DateTime日期格式化
在C#中DateTime是一個包含日期、時間的型別,此型別通過ToString()轉換為字串時,可根據傳入給Tostring()的引數轉換為多種字串格式。
常用用幾種
DateTime now = DateTime.Now; Console.WriteLine(now.Year.ToString()); //2021 Console.WriteLine(now.Month.ToString()); // 9 Console.WriteLine(now.DayOfWeek.ToString()); //SundayConsole.WriteLine(now.Day.ToString()); //5 Console.WriteLine(now.Hour.ToString());//14 Console.WriteLine(now.Minute.ToString());//57 Console.WriteLine(now.Second.ToString());//7 Console.WriteLine(now.ToString("g"));//g=d+' '+t 2021/9/5 14:54 Console.WriteLine(now.ToString("d")); //date 2021/9/5 Console.WriteLine(now.ToString("t"));//time 14:54 Console.WriteLine(now.ToString("G"));//G=d+' '+T 2021/9/5 14:54:06 Console.WriteLine(now.ToString("d")); //date 2021/9/5 Console.WriteLine(now.ToString("T"));//time 14:54:06 Console.WriteLine(now.ToString("f"));//f=D+' '+t 2021年9月5日 14:54 Console.WriteLine(now.ToString("D")); //date 2021年9月5日 Console.WriteLine(now.ToString("t"));//time 14:54 Console.WriteLine(now.ToString("F"));//f=D+' '+T 2021年9月5日 14:54:06 Console.WriteLine(now.ToString("D")); //date 2021年9月5日 Console.WriteLine(now.ToString("T"));//time 14:54:06 Console.WriteLine(now.ToString("dddd"));//day 星期日
目錄
1. 分類
2. 制式型別
3. 自定義格式型別
1. 分類
DateTime呼叫ToString()傳入的引數可分為制式和自定義兩種:
1) 制式:系統自帶的,轉入特定的單個字元就可轉換為系統已設定好的格式。
2) 自定義:自由組合日期程式碼(y、M、d、h、m、s、f)來展示豐富的日期格式。
2. 制式型別
說明:轉入特定的單個字元就可轉換為系統已設定好的格式。
2.1 格式來源
在Windows系統中的區域和語言(位置:控制面板 → 區域和語言)選項中可設定日期和時間的格式。
可設定的分類有:短日期、長日期、短時間、長時間等。
呼叫ToString()進行轉換時,許多轉換方式都是通過上面的4個分類進行組合。
2.2 符號對照表
2.2.1 環境
.net版本:4.0
系統版本:Win7
格式資訊:
2.2.2 對照表
符號 | 語法 | 示例(2016-05-09 13:09:55:2350) | 格式說明 |
- | DateTime.Now.ToString() | 2016/5/9 13:09:55 和 G一樣 | 短日期 長時間 |
d | DateTime.Now.ToString("d") | 2016/5/9 | 短日期 |
D | DateTime.Now.ToString("D") | 2016年5月9日 | 長日期 |
f | DateTime.Now.ToString("f") | 2016年5月9日 13:09 f=D+' 't | 長日期 短時間 |
F | DateTime.Now.ToString("F") | 2016年5月9日 13:09:55 F=D+' 'T | 長日期 長時間 |
g | DateTime.Now.ToString("g") | 2016/5/9 13:09 g=d+' 't | 短日期 短時間 |
G | DateTime.Now.ToString("G") | 2016/5/9 13:09:55 G=d+' 'T | 短日期 長時間 |
t | DateTime.Now.ToString("t") | 13:09 | 短時間 |
T | DateTime.Now.ToString("T") | 13:09:55 | 長時間 |
u | DateTime.Now.ToString("u") | 2016-05-09 13:09:55Z | |
U | DateTime.Now.ToString("U") | 2016年5月9日 5:09:55 | 本初子午線的長日期和長時間 |
m | DateTime.Now.ToString("m") | 5月9日 | |
M | DateTime.Now.ToString("M") | 5月9日 | |
r | DateTime.Now.ToString("r") | Mon, 09 May 2016 13:09:55 GMT | |
R | DateTime.Now.ToString("R") | Mon, 09 May 2016 13:09:55 GMT | |
y | DateTime.Now.ToString("y") | 2016年5月 | |
Y | DateTime.Now.ToString("Y") | 2016年5月 | |
o | DateTime.Now.ToString("o") | 2016-05-09T13:09:55.2350000 | |
O | DateTime.Now.ToString("O") | 2016-05-09T13:09:55.2350000 | |
s | DateTime.Now.ToString("s") | 2016-05-09T13:09:55 |
2.3 示例圖
3. 自定義格式型別
開發人員可通過英文字元(y、M、d、h、m、s、f) 分別代替(年、月、日、時、分、秒、毫秒)來自由組合日期時間格式。
3.1 符號對照表
.net版本:4.0
系統版本:Win7
符號 | 說明 |
語法 | 示例(2016-05-09 13:09:55:2350) |
yy | 年份後兩位 | DateTime.Now.ToString("yy") | DateTime.Now.ToString("yy"); // => 16 |
yyyy | 4位年份 | DateTime.Now.ToString("yyyy") | DateTime.Now.ToString("yyyy"); // => 2016 |
MM | 兩位月份;單數月份前面用0填充 | DateTime.Now.ToString("MM") | DateTime.Now.ToString("MM"); // => 05 |
dd | 日數 | DateTime.Now.ToString("dd") | DateTime.Now.ToString("dd"); // => 09 |
ddd | 周幾 | DateTime.Now.ToString("ddd") | DateTime.Now.ToString("ddd"); // => 週一 |
dddd | 星期幾 | DateTime.Now.ToString("dddd") | DateTime.Now.ToString("dddd"); // => 星期一 |
hh | 12小時制的小時數 | DateTime.Now.ToString("hh") | DateTime.Now.ToString("hh"); // => 01 |
HH | 24小時制的小時數 | DateTime.Now.ToString("HH") | DateTime.Now.ToString("HH"); // => 13 |
mm | 分鐘數 | DateTime.Now.ToString("mm") | DateTime.Now.ToString("mm"); // => 09 |
ss | 秒數 | DateTime.Now.ToString("ss") | DateTime.Now.ToString("ss"); // => 55 |
ff | 毫秒數前2位 | DateTime.Now.ToString("ff") | DateTime.Now.ToString("ff"); // => 23 |
fff | 毫秒數前3位 | DateTime.Now.ToString("fff") | DateTime.Now.ToString("fff"); // => 235 |
ffff | 毫秒數前4位 | DateTime.Now.ToString("ffff") | DateTime.Now.ToString("ffff"); // => 2350 |
分隔符 |
可使用分隔符來分隔年月日時分秒。 包含的值可為:-、/、:等非關鍵字元 |
DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:ffff"); // =>2016-05-09 13:09:55:2350 DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff"); // =>2016/05/09 13:09:55:2350 DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss:ffff dddd"); // =>2016/05/09 13:09:55:2350 星期一 |
3.2 示例圖
程式設計是個人愛好