
在 C# 中處理日期和時間很常見,因此了解日期格式的使用非常重要。本文整理了一些常用的 C# 日期格式的規範及應用範例,幫助你更好地理解如何格式化日期和時間。
現在時間
首先,我們可以使用以下代碼獲取當前時間:
//設定為這部電腦上目前的日期和時間,以本地時間表示
DateTime now = DateTime.Now;
//設定為這部電腦上目前的日期和時間,以國際標準時間 (UTC) 表示
DateTime utcnow = DateTime.UtcNow;
如果我們要以特定的格式顯示當前時間,我們可以使用以下代碼:
//返回當前時間的字符串表示形式,格式為 "年-月-日 小時:分鐘:秒"。
string nowFormatted = now.ToString("yyyy-MM-dd HH:mm:ss");
指定日期時間
接下來,我們可以使用以下代碼來指定日期和時間:
//創建一個指定的日期,年份為 2022 年,月份為 4 月,日期為 1 日
DateTime specifiedDate = new DateTime(2022,4,1);
//創建一個指定的日期時間,年份為 2022 年,月份為 4 月,日期為 1 日,時間為上午 10 點 30 分
DateTime specifiedDateTime = new DateTime(2022, 4, 1, 10, 30, 0);
日期時間格式
標準日期時間格式字串
在C#中,您可以使用ToString()方法將日期格式化為指定格式,以下為C#定義常用的標準格式規範:
格式規範 | 描述 | 範例 |
d | 簡短日期模式 | 2023-04-01T12:34:56 – > 2023/04/01 |
f | 完整日期/時間模式 (簡短時間)。 | 2023-04-01T12:34:56 – > 2023 年 4 月 1 日下午 12:34 |
M | 月/日模式 | 2023-04-01T12:34:56- > 4 月 1 日 |
t | 簡短時間模式 | 2023-04-01T12:34:56 – > 下午 12:34 |
DateTime date = new DateTime(2023,4,1,12,34,56);
//簡短日期模式:2023/4/1
Console.WriteLine(date.ToString("d"));
//完整日期/時間模式 (簡短時間):> 2023 年 4 月 1 日下午 12:34
Console.WriteLine(date.ToString("f"));
//月/日模式:4 月 1 日
Console.WriteLine(date.ToString("M"));
//簡短時間模式:下午 12:34
Console.WriteLine(date.ToString("t"));
完整標準格式規範請參考官方文件
自訂日期時間格式字串
除了官方的標準格式外,使用者也可以自訂想要的日期時間格式,以下是一些常用的格式化選項:
格式選項 | 說明 |
yyyy | 四位數年份 |
MM | 月份(兩位數) |
MMM | 月份英文縮寫(ex.”Jan”) |
dd | 日期(兩位數) |
ddd | 星期縮寫(ex.”Mon”) |
hh | 小時(12小時制) |
HH | 小時(24小時制) |
mm | 分鐘 |
ss | 秒數 |
tt | 上午或下午的縮寫(ex.”AM”) |
DateTime date = new DateTime(2023,4,1,15,34,56);
//輸出 2023/04/01 15:34
Console.WriteLine(date.ToString("yyyy/MM/dd HH:mm"));
//輸出 03:34;56
Console.WriteLine(date.ToString("hh:mm:ss"));
完整自訂格式規範請參考官方文件
日期時間的文化特性(CultureInfo)
System.Globalization中的CultureInfo是在C#中有專門負責不同地區在地化設定(Localization)的類別,包含在地的文化特性、曆法、以及日期時間的格式,所以在處理日期時間格式時,同樣的格式規範在不同的CultureInfo中會產生不同的結果。
DateTime date = new DateTime(2023, 4, 1, 12, 34, 56);
//取得當前文化特性輸出:2023年4月1日 下午 12:34
Console.WriteLine(date.ToString("f", CultureInfo.CurrentCulture));
//指定特定文化特性
//zh-TW文化特性輸出:2023年4月1日 下午 12:34
Console.WriteLine(date.ToString("f", CultureInfo.CreateSpecificCulture("zh-TW")));
//en-US文化特性輸出:Saturday, April 1, 2023 12:34 PM
Console.WriteLine(date.ToString("f", CultureInfo.CreateSpecificCulture("en-US")));
//th-TH文化特性輸出(泰國佛曆):วันเสาร์ที่ 1 เมษายน พ.ศ. 2566 12:34
Console.WriteLine(date.ToString("f", CultureInfo.CreateSpecificCulture("th-TH")));