[C#]DateTime的日期時間格式

C#日期時間格式

在 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")));

參考資料

自訂日期與時間格式字串 | Microsoft Learn

標準日期與時間格式字串 | Microsoft Learn

CultureInfo類別 | Microsoft Learn

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *