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

10次阅读

C# 中 DateTime 格式化最常用方式是 ToString()方法,支持预定义标准格式符(如 "d" 短日期、"D" 长日期)和自定义格式字符串(如 ”yyyy-MM-dd HH:mm:ss”),并可通过 CultureInfo 指定文化信息确保本地化一致性。

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

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)快速验证
  • 需要兼容多种语言时,统一管理格式字符串,或封装为扩展方法

基本上就这些。掌握标准符 + 几个关键自定义符号(yyyyMMddHHmmss),再注意文化上下文,日常开发已完全够用。

星耀云
版权声明:本站原创文章,由 星耀云 2025-12-16发表,共计1344字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources