【问题标题】:DateTime.Parse with a custom DateTimeFormatInfo throws an exception带有自定义 DateTimeFormatInfo 的 DateTime.Parse 引发异常
【发布时间】:2012-03-22 12:08:48
【问题描述】:

为什么这段代码会抛出异常?

var dateTime = "2012-03-21_15.12";
var format = new DateTimeFormatInfo()
{
   FullDateTimePattern = "yyyy-MM-dd-HH_mm.ss"
};

// FormatException: String was not recognized as a valid DateTime.
var parse = DateTime.Parse(dateTime, format); 

【问题讨论】:

  • 您假设DateTime.Parse 方法将使用FullDateTimePattern

标签: c# parsing datetime formatexception iformatprovider


【解决方案1】:

您的格式字符串和日期字符串不匹配。

您似乎忘记了日期字符串中的小时或分钟部分。

这个:

 var dateTime = "2012-03-21_15.12";

应该看起来像:

var dateTime = "2012-03-21-15_54.12";

我建议使用DateTime.ParseExact:

DateTime.ParseExact("2012-03-21-16_15.12", 
        "yyyy-MM-dd-HH_mm.ss", 
        CultureInfo.InvariantCulture, 
        DateTimeStyles.None)

【讨论】:

    【解决方案2】:

    您可能希望使用 DateTime.ParseExact,因为这会将日期时间格式模式作为参数。

    DateTime.ParseExact

    【讨论】:

      猜你喜欢
      • 2023-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-04
      • 1970-01-01
      • 2014-09-28
      • 1970-01-01
      相关资源
      最近更新 更多