C#DateTime解析“无效格式字符串”

时间:2017-05-02 03:40:54

标签: c# string datetime mono

我遇到DateTime解析和格式化字符串的问题。我提供的格式字符串看起来很好,格式字符串中的每个字符和分隔符都与日期字符串中的数字或字符匹配。特别是错误读取 FormatException:无效的格式字符串。我正在使用Mono C#游戏引擎随附的Unity3D

错误:

  

“FormatException:格式字符串无效”

代码:

string date_string = "3/9/2017 19:50";    
string date_format_string = "M/d/yyyy HH:mm";
print("string value: [" + date_string + "]");
print("format string: [" + date_format_string + "]");
DateTime new_dt = DateTime.ParseExact(date_string, date_format_string, CultureInfo.InvariantCulture);

控制台输出显示错误: enter image description here

任何帮助将不胜感激,谢谢!

3 个答案:

答案 0 :(得分:0)

您需要更改此行:

string date_format_string = "M/d/yyyy HH:mm";

采用以下正确格式:

string date_format_string = "MM/dd/yyyy HH:mm";

将前导零添加到您的日期

string date_string = "3/9/2017 19:50"; 
像这样

string date_string = "03/09/2017 19:50";

有关DateTime.ParseExact格式的详情,请阅读here

答案 1 :(得分:0)

希望它会对你有帮助,

DateTime date = DateTime.Now;
string dateWithFormat = date.ToLongDateString();

您可以进一步修改字符串的格式。您可以通过date.ToString("dd - MM - yyyy");执行此操作,这会输出类似02 - 05 - 2017

的内容

Refer this

答案 2 :(得分:0)

我也有这个问题。

我通过确保默认为1000-01-01 00:00:00来修复它。

这是因为它在" 0000-00-00 00:00:00"因为最低可能值是:1000-01-01 00:00:00。