You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#如何将字符串日期转换为指定格式 解决ParseExact转换异常

错误原因

你代码里的格式字符串用错了:MMMM格式符匹配的是完整月份全称(比如August),但你的输入字符串里月份是3位缩写AUG,和格式要求不匹配,自然会抛出格式异常。3位月份缩写对应的格式符是MMM。

正确实现代码

先把输入字符串用匹配3位月份缩写的格式解析为DateTime对象,再把对象格式化为你需要的完整月份名输出格式即可:

using System.Globalization;

string originDateStr = "04-AUG-2022";
// 解析阶段用匹配3位月份缩写的格式
DateTime dateObj = DateTime.ParseExact(
    originDateStr,
    "dd-MMM-yyyy",
    CultureInfo.InvariantCulture
);
// 格式化阶段用MMMM输出完整月份名
string targetDateStr = dateObj.ToString("dd MMMM yyyy", CultureInfo.InvariantCulture);

运行后targetDateStr的值就是你需要的04 August 2022。

补充说明
  • 解析和格式化环节都建议传入CultureInfo.InvariantCulture,避免运行环境的区域语言设置差异,导致月份名识别错误、输出不符合预期。
  • 常用C#月份格式符区分:
    • MM:两位数字形式的月份,比如08代表8月
    • MMM:三位缩写形式的月份,比如AUG、Jan
    • MMMM:完整名称形式的月份,比如August、January

内容的提问来源于stack exchange,提问作者NAKED_DEVELOPER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 13:18:33