-2

我有一个字符串未被识别为有效的日期时间错误。

遵循此处的示例之一。其中有一个例子说:

dateString = "15/06/2008 08:30"; 
  format = "g"; 
  provider = new CultureInfo("fr-FR"); 
  try { 
     result = DateTime.ParseExact(dateString, format, provider); 
     Console.WriteLine("{0} converts to {1}.", dateString, result.ToString()); 
  }    
  catch (FormatException) { 
     Console.WriteLine("{0} is not in the correct format.", dateString); 
  }  

这是我的代码:

string convertToString = string.Join("", dateTimeId);

DateTime parsedDateTime = DateTime.ParseExact(convertToString, "g", CultureInfo.InvariantCulture);

我有一个字符串数组转换为字符串,因为我正在读取一个日期时间值为“3/16/2002 9:20”的 csv 行。

我还尝试了“MM/dd/yyyy HH:mm”的格式,但仍然出现相同的错误。

任何提示或帮助表示赞赏。

4

1 回答 1

1

试试这个格式字符串

"M/dd/yyyy H:mm"

如果您为月份指定两个 M,为一小时指定两个 H,则两者都需要前导零。

或者只是使用DateTime.Parse应该工作。

Console.WriteLine(DateTime.Parse("3/16/2002 9:20", CultureInfo.InvariantCulture));

我越看这个,我就越认为“g”应该起作用。它似乎只有在月份和小时都有前导零时才有效,即使如果您使用它将 a 格式化DateTime为 a时它没有放入前导零string,至少对于InvariantCulture.

于 2016-05-12T18:41:32.127 回答