DateTime.TryParse问题,日期由am而不是am组成

Mee*_*ena 2 c# datetime

我有以下日期的字符串格式"2017-04-05 05:00:00 am".现在我尝试使用以下代码将其转换为datetime格式:

var dateTime="2017-04-05 05:00:00 a.m";
DateTime value = DateTime.MinValue;
DateTime.TryParse(dateTime, out value );
Run Code Online (Sandbox Code Playgroud)

但我总是在{1/1/0001 12:00:00 AM}获得dt,你能告诉我为什么吗?以及如何将该字符串转换为日期.

Joe*_*Joe 10

您可以尝试使用自DateTimeFormatInfo定义am/pm指示符创建自定义:

var formatInfo = (DateTimeFormatInfo) CultureInfo.InvariantCulture.DateTimeFormat.Clone();
formatInfo.AMDesignator = "a.m";
formatInfo.PMDesignator = "p.m";

var value = DateTime.Parse("2017-04-05 05:00:00 a.m", formatInfo); 
Run Code Online (Sandbox Code Playgroud)

这也适用于下午时间:

var value = DateTime.Parse("2017-04-05 03:00:00 p.m", formatInfo); 
Run Code Online (Sandbox Code Playgroud)