【问题标题】:DateTime.ParseExact give the error: String was not recognized as a valid DateTimeDateTime.ParseExact 给出错误:字符串未被识别为有效的日期时间
【发布时间】:2012-09-20 06:57:39
【问题描述】:

我想解析 DateTime,这里是我的代码:

var datastring =p1.ItemArray[2].ToString();
var format = "dd.MM.yyyy";
var date = DateTime.ParseExact(datastring,format,CultureInfo.InvariantCulture);

p1 - 是 DataRow,在 p1.ItemArray[2] 我有 DateTime 的值

在手表p1.ItemArray[2] 有这个值:"09/03/2012 00:00:00" 他的类型是DateTime

解析后抛出错误:字符串未被识别为有效的日期时间。

【问题讨论】:

    标签: c# datetime tryparse


    【解决方案1】:

    您可以在格式中包含时间,因为您尝试解析的字符串似乎包含时间:

    var format = "dd/MM/yyyy hh:mm:ss";
    

    另外我建议您使用TryParseExact 方法,因为它提供了更好的防御性编程模式,而不是抛出异常。

    【讨论】:

      【解决方案2】:

      恕我直言,您应该使用

      var datastring = p1.ItemArray[2].ToString();
      var format = "dd/MM/yyyy HH:mm:ss";
      var date = DateTime.ParseExact(datastring, format, CultureInfo.InvariantCulture);
      

      对于ParseExact,您必须提供字符串中包含的确切日期格式

      【讨论】:

        【解决方案3】:

        改变这个:

        var format = "dd.MM.yyyy";
        

        有了这个:

        var format = "dd/MM/yyyy HH:mm:ss";
        

        【讨论】:

        • 我想与格式为“dd.MM.yyyy”的其他变量进行比较
        • @Alex:没关系:在 DateTime 中转换另一个“字符串日期”,然后比较两个日期!如果您需要比较日期,请不要比较字符串:)
        • @Alex 你什么意思?比较两个 DateTime 结构或字符串?
        【解决方案4】:

        因为 parseExact 将期望收到您指定的相同格式,即“dd.MM.yyyy”。你可以试试:

        var format = "dd.MM.yyyy";
        var datastring =p1.ItemArray[2].ToString(format);
        

        【讨论】:

        • 方法 'ToString' 有 0 个参数 tu 它使用 1 个参数调用
        【解决方案5】:

        很可能是由于您的服务器语言环境和 UI 语言环境之间的差异

        一种更简单的方法是在 web.config 中指定全球化细节

        喜欢

        <configuration>
           <system.web>
              <globalization culture="en-GB"/>
           </system.web>
        </configuration>
        

        或者更详细的

        <globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" uiCulture="en-GB" />
        

        但请确保这不会与您的应用程序发生冲突

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-06-09
          • 1970-01-01
          • 1970-01-01
          • 2012-01-07
          • 1970-01-01
          • 2023-04-01
          • 1970-01-01
          • 2011-12-15
          相关资源
          最近更新 更多