我想将日期时间字符串解析为DateTime
数据类型。
字符串的格式类似于08/10/2013 09:49 PM
,我希望它转到2013-10-08 21:49:05.6500000
以下是我的代码,但它无效。
public static DateTime ConvertDateTime(String arg_dateTime)
{
try
{
return DateTime.ParseExact(arg_dateTime,
"dd/MM/yyyy H:m:s fff",
System.Globalization.CultureInfo.InvariantCulture);
}
catch(Exception exp)
{
return DateTime.Now;
}
}
答案 0 :(得分:2)
您的格式字符串与您的输入数据不匹配。请尝试使用"dd/MM/yyyy HH:mm:ss tt"
格式字符串,有关详细信息,请参阅custom date and time format documentation。
请注意,如果异常失败,则应使用DateTime.TryParseExact
并检查返回值,而不是捕获异常。或者,如果此处的失败表示严重失败,请使用ParseExact
并且不捕获异常。您确实想要默认为DateTime.Now
吗?对我来说似乎不太可能。你应该强烈考虑让异常传播。
此外,您的方法不会返回特定格式 - 它会返回DateTime
。这对格式一无所知 - 如果你想将值转换为特定的格式,你应该专门这样做。
答案 1 :(得分:0)
您是否只需要使用ParseExact
?
为什么不Parse
?
string arg_dateTime = "2013-10-08 21:49:05.6500000";
var dt = DateTime.Parse(arg_dateTime, System.Globalization.CultureInfo.InvariantCulture);
Console.WriteLine(dt);//this works
以下是Demo