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

C#如何将日期字符串25APR18转换为2018-04-25?

解决字符串"25APR18"转"2018-04-25"的日期解析问题

你遇到的报错核心原因是格式字符串和输入日期的结构完全不匹配,咱们一步步来修正:

错误原因分析

你用的格式字符串是"yyyy-mm-dd",但输入的"25APR18"结构是「两位日期 + 三位英文月份缩写 + 两位年份」,两者完全对应不上,所以ParseExact无法识别并抛出错误。

正确的解决方案

1. 匹配输入结构的格式字符串

正确的格式字符串应该是"ddMMMyy",各部分对应含义:

  • dd:两位数字的日期(对应输入里的25)
  • MMM:三位英文月份缩写(对应输入里的APR)
  • yy:两位数字的年份(对应输入里的18)

2. 完整代码示例

using System;
using System.Globalization;

class DateConversionExample
{
    static void Main()
    {
        string inputDate = "25APR18";
        // 第一步:用匹配的格式解析字符串为DateTime对象
        DateTime parsedDate = DateTime.ParseExact(inputDate, "ddMMMyy", CultureInfo.InvariantCulture);
        // 第二步:将DateTime对象格式化为目标格式"yyyy-MM-dd"
        string outputDate = parsedDate.ToString("yyyy-MM-dd");
        Console.WriteLine(outputDate); // 输出结果:2018-04-25
    }
}

关键注意点

  • 一定要传入CultureInfo.InvariantCulture,因为月份缩写是英文的,避免系统区域设置为非英文时解析失败。
  • 格式字符串的每个部分必须和输入字符串的结构严格对应,这是ParseExact方法的核心要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:55:09