繁体   English   中英

如何将字符串解析为日期时间格式

[英]How to parse string into datetime format

我想将日期时间字符串解析为DateTime数据类型。

字符串的格式类似于2013-10-08 21:49:05.6500000 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;
    }
}

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

请注意,您应该使用DateTime.TryParseExact并检查返回值,而不是在失败时捕获异常。 或者,如果此处的故障表示ParseExact故障,则只需使用ParseExact而不捕获异常。 真的要默认为DateTime.Now吗? 对我来说似乎不太可能。 您应该强烈考虑让异常传播出去。

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

您仅需要使用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

这是演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM