1

我想将日期时间字符串解析为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;
    }
}
4

2 回答 2

2

您的格式字符串与您的输入数据不匹配。尝试使用 格式字符串"dd/MM/yyyy HH:mm:ss tt",并查看自定义日期和时间格式文档以获取更多信息。

请注意,与其在失败时捕获异常,不如使用DateTime.TryParseExact并检查返回值。或者,如果这里的失败代表了大失败,那么只需使用ParseExact并且不要捕获异常。你真的要默认DateTime.Now吗?在我看来这不太可能。您应该强烈考虑让异常向上传播。

此外,您的方法不会返回特定格式 - 它返回一个DateTime. 那对格式一无所知-如果要将值转换为特定格式,则应该专门这样做。

于 2013-10-08T16:45:19.840 回答
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

这是演示

于 2013-10-08T16:39:16.400 回答