c#中的字符串到日期时间:2018-05-10 10-AM

时间:2018-05-12 11:06:28

标签: c# datetime datetime-format

我想转换字符串" 2018-05-10 10-AM"到DateTime-Object。我尝试了一切,包括这个(抛出异常):

var date = DateTime.ParseExact("values[0]", "yyyy-MM-dd HH-tt", 
System.Globalization.CultureInfo.InvariantCulture);

有人知道我做错了吗?

2 个答案:

答案 0 :(得分:1)

我认为你应该hh specifier代替HH specifier,因为你的小时部分是12-hour clock格式,而不是24-hour clock

var date = DateTime.ParseExact("2018-05-10 10-AM", "yyyy-MM-dd hh-tt", 
                                  CultureInfo.InvariantCulture);

还有David commented,你的代码中有拼写错误。至少应该是这样的;

var date = DateTime.ParseExact(values[0], "yyyy-MM-dd hh-tt", 
                                  CultureInfo.InvariantCulture);

答案 1 :(得分:0)

您也可以使用以下内容:

var date = DateTime.ParseExact("2018-05-10 10-AM", @"yyyy-MM-dd hh-tt", new CultureInfo("en-US"));

并在您自己的例子中:

var date = DateTime.ParseExact(values[0], @"yyyy-MM-dd hh-tt", new CultureInfo("en-US"));

请注意,不要将变量放在引号中。