首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# DateTime 格式化完全指南:標準/自訂格式字串與最佳實務

     編輯:關於C語言

DateTime.ToString 兩大格式體系

體系格式字串說明範例 (2024-05-20 14:30:05)
標準格式
(單一字元)
d短日期2024/05/20
D長日期2024年5月20日
f完整日期短時間2024年5月20日 下午 02:30
F完整日期長時間2024年5月20日 下午 02:30:05
g一般短日期短時間2024/05/20 下午 02:30
G一般短日期長時間2024/05/20 下午 02:30:05
M/m月日5月20日
R/rRFC1123Mon, 20 May 2024 14:30:05 GMT
s可排序 (ISO 8601)2024-05-20T14:30:05
t短時間下午 02:30
T長時間下午 02:30:05
u通用可排序 (UTC)2024-05-20 14:30:05Z
U完整日期長時間 (UTC)2024年5月20日 上午 06:30:05
Y/y年月2024年5月

自訂格式字串(區分大小寫)

格式意義範例
d日 (無前導零)5
dd日 (兩位數)05
ddd星期縮寫一
dddd星期全名星期一
M月 (無前導零)5
MM月 (兩位數)05
MMM月份縮寫五月
MMMM月份全名五月
y年 (無紀元, 無前導零)24
yy年 (無紀元, 兩位數)24
yyyy年 (四位數)2024
h12小時制 (無前導零)2
hh12小時制 (兩位數)02
H24小時制 (無前導零)14
HH24小時制 (兩位數)14
m分 (無前導零)30
mm分 (兩位數)30
s秒 (無前導零)5
ss秒 (兩位數)05
f~fffffff秒小數 1~7 位.1234567
tAM/PM 首字上
ttAM/PM 完整下午
z時區時差 (小時)+8
zz時區時差 (兩位數小時)+08
zzz時區時差 (時:分)+08:00
:時間分隔符 (依文化):
/日期分隔符 (依文化)/
'text' 或 \c字面文字'年' → 年

實用組合範例


var dt = new DateTime(2024, 5, 20, 14, 30, 5);

// 常見需求
dt.ToString("yyyyMMdd")           // 20240520 (檔名、資料庫鍵值)
dt.ToString("yyyy-MM-dd")         // 2024-05-20 (ISO 日期)
dt.ToString("yyyy/MM/dd HH:mm")   // 2024/05/20 14:30 (日誌)
dt.ToString("yyyy年MM月dd日")      // 2024年05月20日 (中文顯示)
dt.ToString("HH:mm:ss.fff")       // 14:30:05.123 (高精度時間)
dt.ToString("yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture) // UTC ISO 8601

// 指定文化特性 (避免伺服器文化差異導致格式錯誤)
dt.ToString("D", new CultureInfo("zh-TW")) // 2024年5月20日 星期一
dt.ToString("D", CultureInfo.InvariantCulture) // Monday, May 20, 2024

最佳實務

  • 永遠指定 CultureInfo: 生產環境建議用 CultureInfo.InvariantCulture 或明確指定 new CultureInfo("zh-TW"),避免伺服器區域設定不同導致格式錯誤。
  • 儲存/傳輸用 ISO 8601: "o" (Round-trip) 或 "yyyy-MM-ddTHH:mm:ss.fffZ" (UTC),可無損往返解析。
  • 解析用 TryParseExact: 避免例外,明確指定預期格式。
  • .NET 6+ 建議: 使用 DateOnly/TimeOnly 分離日期時間,語意更清晰。

常見陷阱

  • mm 是分鐘,MM 才是月份 —— 寫錯最常見。
  • yyyy vs YYYY:後者為週曆年,跨年週會不同,慎用。
  • 單一字元自訂格式需加 % 前綴:"%d" 才不被視為標準格式 "d"。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved