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

请求协助:将MM/DD/YYYY字符串日期转换为DD/MM/YYYY DateTime格式

解决日期字符串解析与格式转换问题

首先得先指出你代码里的几个小问题,避免编译报错:

  • 变量名写错了:方法参数是fromDate和toDate,但你代码里用了fromDates和toDates,这会导致编译错误
  • 重复定义了dDate变量,同一个作用域里不能重复声明同名变量

接下来回到你的核心需求:把格式为"03/30/2018"(MM/dd/yyyy)的字符串解析成DateTime,再输出为"30/03/2018 12:00:00 AM"(dd/MM/yyyy hh:mm:ss tt)格式的字符串(或者说确保解析后的DateTime可以正确格式化为这个样式)。

推荐方案:使用ParseExact明确指定输入格式

直接用DateTime.Parse可能会因为服务器的区域文化设置导致解析失败(比如有些地区默认是dd/MM/yyyy,这时候解析"03/30/2018"会报错,因为30不是合法的月份),所以最好用ParseExact来明确指定输入的日期格式:

public ActionResult Export(string fromDate, string toDate)
{
    DateTime parsedFromDate;
    DateTime parsedToDate;

    // 解析fromDate:输入格式是MM/dd/yyyy
    if (!string.IsNullOrEmpty(fromDate))
    {
        // 使用InvariantCulture确保解析不受系统文化影响
        parsedFromDate = DateTime.ParseExact(fromDate, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture);
        // 如果需要输出成目标格式的字符串
        string formattedFromDate = parsedFromDate.ToString("dd/MM/yyyy hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
        // 这里可以使用formattedFromDate做后续操作
    }

    // 解析toDate同理
    if (!string.IsNullOrEmpty(toDate))
    {
        parsedToDate = DateTime.ParseExact(toDate, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture);
        string formattedToDate = parsedToDate.ToString("dd/MM/yyyy hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
    }

    // 后续逻辑...
    return View();
}

更安全的方案:使用TryParseExact避免异常

如果前端传入的日期格式可能不规范,建议用TryParseExact,这样不会因为格式错误抛出异常,而是返回布尔值告诉你解析是否成功:

public ActionResult Export(string fromDate, string toDate)
{
    DateTime parsedFromDate;
    DateTime parsedToDate;

    if (!string.IsNullOrEmpty(fromDate))
    {
        if (DateTime.TryParseExact(fromDate, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out parsedFromDate))
        {
            string formattedFromDate = parsedFromDate.ToString("dd/MM/yyyy hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
            // 解析成功,执行逻辑
        }
        else
        {
            // 解析失败,处理错误(比如返回提示)
        }
    }

    if (!string.IsNullOrEmpty(toDate))
    {
        if (DateTime.TryParseExact(toDate, "MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out parsedToDate))
        {
            string formattedToDate = parsedToDate.ToString("dd/MM/yyyy hh:mm:ss tt", System.Globalization.CultureInfo.InvariantCulture);
        }
        else
        {
            // 处理错误
        }
    }

    // 后续逻辑...
    return View();
}

格式说明

  • 输入格式"MM/dd/yyyy":MM代表两位月份,dd代表两位日期,yyyy代表四位年份
  • 输出格式"dd/MM/yyyy hh:mm:ss tt":dd/MM/yyyy是日/月/年,hh是12小时制的小时,mm是分钟,ss是秒,tt是AM/PM标识

这样就能准确完成你需要的日期转换啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:09:40