【问题标题】:C# String to DateTimeC# 字符串到日期时间
【发布时间】:2015-04-10 02:33:43
【问题描述】:
DateTime frm_datestart = DateTime.Parse(dateStart.Text);

这行抛出错误:

异常详情: System.FormatException:字符串不是 被识别为有效的 DateTime。

其中输入的字符串来自Jquery-UI,示例:

 09/29/2010
 09/30/2010

有人知道正确的格式应该是什么吗?我很惊讶这不起作用:S

【问题讨论】:

标签: c# asp.net datetime


【解决方案1】:

您可以使用DateTime.Parse() 方法的重载版本,该方法接受第二个DateTimeFormatInfo 参数。

System.Globalization.DateTimeFormatInfo dti = new System.Globalization.DateTimeFormatInfo();
dti.ShortDatePattern = "MM/dd/yyyy";
DateTime dt = DateTime.Parse(dateStart.Text, dti); 

【讨论】:

    【解决方案2】:

    寻找DateTime.ParseExact 方法。

    【讨论】:

      【解决方案3】:
      val = dateStart.Text.ToString("yyyy-M-d HH:mm:ss");
      

      【讨论】:

      • 这可能甚至无法编译(没有 ToString 覆盖 StringString 作为参数)。
      【解决方案4】:

      使用DateTime.ParseExact 指定格式如下:DateTime.Parse("dd/MM/yyyy", dateStart.Text, null)

      【讨论】:

        【解决方案5】:

        先前答案中建议的 DateTime.ParseExact() 方法的问题是,它在某些文化上失败。因此,您的应用程序可能无法在某些操作系统上正确运行。

        如果您确定 dateStart.Text 将始终采用相同的格式(即 en-US),您可以尝试将适当的 CultureInfo 作为第二个参数传递。对于“MM/dd/yyyy”格式,请使用 CultureInfo.InvariantCulture。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-04-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-02
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多