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

通用日期转美国短日期格式报错:无法识别有效DateTime

解决日期转换报错的问题

嘿,我知道你遇到的问题啦!你的输入19-01-2018 10:55:52之所以解析失败,是因为你的格式数组里没有匹配它的格式项。仔细看这个输入:它是日-月-年 24小时制时:分:秒的结构,而你现有的格式里存在两个关键问题:

  • 用的是hh(12小时制,必须配合tt标识上午/下午),但输入是24小时制的10,没有tt后缀
  • 所有带时间的格式都没有包含秒数ss的部分

另外还要注意:你需求是转换为美国短日期格式MM-dd-yyyy,但原代码里ToString("MM/dd/yyyy")用的是斜杠分隔,和需求的横杠不符哦。

下面是修正后的代码:

public static string ConvertToUSDateFormat(string dateString) {
    // 添加了匹配输入的dd-MM-yyyy HH:mm:ss格式,同时保留其他原有格式
    string[] formats = {
        "dd/MM/yyyy", "dd-MMM-yyyy", "yyyy-MM-dd",
        "yyyy-MM-dd hh:mm:tt", "dd-MM-yyyy hh:mm:tt", 
        "M/d/yyyy", "dd MMM yyyy", "dd/MM/yyyy hh:mm:tt", 
        "MM-dd-yyyy hh:mm:tt", "dd-MM-yyyy h:mm:tt",
        "dd-MM-yyyy HH:mm:ss" // 新增匹配输入的格式
    };
    // 这里把ToString的格式改成MM-dd-yyyy,符合需求的美国短日期格式
    string convertedDate = DateTime.ParseExact(dateString, formats, CultureInfo.InvariantCulture, DateTimeStyles.None).ToString("MM-dd-yyyy");
    return convertedDate;
}

这样修改后,输入19-01-2018 10:55:52就能被正确解析,并且输出01-19-2018,完美符合你的需求~

内容的提问来源于stack exchange,提问作者I Love Stackoverflow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:05:46