C# 日期时间解析 "invalid format string"

C# DateTime parsing "invalid format string"

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

错误:

"FormatException: Invalid format string"

代码:

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);

显示错误的控制台输出:

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

您需要更改此行:

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

希望对您有所帮助,

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

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

的内容

Refer this

我也有这个问题。

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

这是因为读取为“0000-00-00 00:00:00”时出错,因为可能的最低值为:1000-01-01 00:00:00.