C#怎么进行日期时间格式化 C# DateTime.ToString格式化方法

来源:这里教程网 时间:2026-02-21 17:33:45 作者:

C# 中对

DateTime
进行格式化,最常用、最直接的方式就是调用
ToString()
方法,并传入格式字符串或格式说明符。它灵活、高效,且支持自定义和预设格式。

使用预定义标准格式说明符

标准格式说明符是单个字母(如

"d"
"D"
"t"
),对应系统区域设置下的常见日期时间样式:

dt.ToString("d")
→ 短日期(如:2024/5/20
dt.ToString("D")
→ 长日期(如:2024年5月20日 星期一
dt.ToString("t")
→ 短时间(如:14:30
dt.ToString("T")
→ 长时间(如:14:30:25
dt.ToString("f")
→ 全日期+短时间(如:2024年5月20日 星期一 14:30
dt.ToString("F")
→ 全日期+长时间(含秒,如:2024年5月20日 星期一 14:30:25
dt.ToString("g")
→ 常规日期+短时间(如:2024/5/20 14:30
dt.ToString("G")
→ 常规日期+长时间(如:2024/5/20 14:30:25

使用自定义格式字符串

用字母组合精确控制每个部分,大小写敏感,常用占位符有:

"yyyy"
→ 4位年份(2024),
"yy"
→ 2位(24
"MM"
→ 补零月(05),
"M"
→ 不补零(5
"dd"
→ 补零日,
"d"
→ 不补零
"HH"
→ 24小时制小时(14),
"hh"
→ 12小时制(02
"mm"
→ 分钟,
"ss"
→ 秒,
"fff"
→ 毫秒(三位)
"tt"
→ AM/PM(英文),中文环境下建议用
"上午"/"下午"
文字字面量
文字内容用单引号包裹,如:
"yyyy年'M'月'd'日 HH:mm:ss"
2024年M月20日 14:30:25

指定文化信息(CultureInfo)避免本地化偏差

不指定时默认用当前线程文化(可能影响星期、月份名称、分隔符)。如需固定输出(比如始终英文或始终中文),显式传入:

dt.ToString("D", new CultureInfo("en-US"))
Monday, May 20, 2024
dt.ToString("D", new CultureInfo("zh-CN"))
2024年5月20日 星期一
也可用
CultureInfo.InvariantCulture
获取与区域无关的英文格式(如 ISO 标准)

安全格式化:避免异常的推荐写法

直接调用

ToString(string)
不会抛异常,但若格式字符串非法(如错用双引号、未闭合引号),会在运行时报错。建议:

优先使用标准格式符(
"G"
"s"
等)——安全、简洁、可读性高
自定义格式尽量用字符串字面量,避免拼接;调试时可用
DateTime.Now.ToString("o")
(往返格式,ISO 8601)快速验证
需要兼容多种语言时,统一管理格式字符串,或封装为扩展方法

基本上就这些。掌握标准符 + 几个关键自定义符号(

yyyy
MM
dd
HH
mm
ss
),再注意文化上下文,日常开发已完全够用。

相关推荐