.net中格式化DateTime主要用ToString()方法,支持标准格式如”d””D””T”和自定义格式如”yyyy-MM-dd”,还可结合CultureInfo实现多语言适配,推荐使用内插字符串”$”{dateTime:yyyy-MM-dd}”进行简洁输出。

.NET 中将 DateTime 对象格式化为字符串的方法非常灵活,主要通过 ToString() 方法和标准或自定义格式化字符串来实现。下面汇总常用方法和格式,帮助你在不同场景下正确输出所需的时间字符串。
使用内置标准格式字符串
DateTime 提供了一系列预定义的标准格式说明符,可以直接生成常见格式的字符串:
- ToString(“d”):短日期(如 2025-04-05)
- ToString(“D”):长日期(如 2025年4月5日)
- ToString(“t”):短时间(如 14:30)
- ToString(“T”):长时间(如 14:30:25)
- ToString(“f”):完整日期与短时间(如 2025年4月5日 14:30)
- ToString(“F”):完整日期与长时间(如 2025年4月5日 14:30:25)
- ToString(“g”):通用短格式(如 2025/4/5 14:30)
- ToString(“G”):通用长格式(如 2025/4/5 14:30:25)
- ToString(“u”):可排序的 ISO 格式(如 2025-04-05 14:30:25Z)
- ToString(“s”):可排序的本地时间(如 2025-04-05T14:30:25)
使用自定义格式字符串
你可以组合格式字符来自定义输出样式,比如:
- ToString(“yyyy-MM-dd”) → 2025-04-05
- ToString(“MM/dd/yyyy HH:mm:ss”) → 04/05/2025 14:30:25
- ToString(“dd MMM yyyy”) → 05 Apr 2025
- ToString(“HH:mm”) → 14:30
- ToString(“yyyy年MM月dd日 HH时mm分”) → 2025年04月05日 14时30分
常用格式符号说明:
- yyyy:4位年份
- MM:2位月份(01-12)
- dd:2位日期(01-31)
- HH:24小时制小时(00-23)
- hh:12小时制小时(01-12)
- mm:分钟(00-59)
- ss:秒(00-59)
- tt:上午/下午标识(AM/PM 或 中午/上午)
结合 CultureInfo 进行区域性格式化
如果你希望根据用户所在地区自动适配格式,可以传入 CultureInfo:
- dateTime.ToString(new CultureInfo(“zh-CN”)) → 中文格式
- dateTime.ToString(new CultureInfo(“en-US”)) → 英文格式(如 4/5/2025)
- dateTime.ToString(“D”, new CultureInfo(“ja-JP”)) → 日文长日期
这在开发多语言应用时非常有用。
使用 String.format 或内插字符串
除了直接调用 ToString,还可以在字符串拼接中使用格式化:
- String.Format(“{0:yyyy-MM-dd}”, dateTime)
- $”{dateTime:yyyy-MM-dd HH:mm}”(C# 6+ 支持)
内插字符串写法更简洁,推荐在现代 C# 开发中使用。
基本上就这些。掌握标准格式、自定义模式和区域性设置,就能应对大多数时间格式化需求。关键是根据输出用途选择合适的方式,比如日志用 s 格式,界面显示可用 D 或 f。不复杂但容易忽略细节,比如大小写敏感(MM 是月,mm 是分)。


