如何使用c#解析包含毫秒的日期时间字符串?

时间:2016-03-14 18:44:37

标签: c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

我正在尝试将数据时间字符串“包括毫秒”转换为DataTime。我试过尝试使用DateTime.TryParseExact,但它没有给我一毫秒。

这就是我累了

public static DateTime? dateTimeVal(string raw, string format = null)
{
    DateTime final;

    if(raw != null){

        if( format != null){

            string[] formats = new[] { format };  

            if (DateTime.TryParseExact(raw, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out final))
            {
                return final;
            }
        }

        if (DateTime.TryParse(raw, out final))
        {
            return final;
        }

    }

    return null;
}

这就是我使用上述方法的方法

DateTime? dt = dateTimeVal("2016-03-14 11:22:21.352", "yyyy-MM-dd HH:mm:ss.fff");

然而,dt给了我3/14/2016 11:22:21 AM

如何获取包含毫秒的值?

3 个答案:

答案 0 :(得分:1)

DateTime final = new DateTime();
var test = DateTime.TryParseExact("2016-03-14 11:22:21.352", new string[] { "yyyy-MM-dd HH:mm:ss.fff" }, CultureInfo.InvariantCulture, DateTimeStyles.None, out final);

这适合我。

enter image description here

请注意你的fff。如果你把它们写成大写,那么毫秒将被抑制。小写它们将被解析。

我唯一可以想象的是你使用.ToString而没有提供任何格式。然后你会得到:

enter image description here

您确定在代码中编写了小写的提供格式吗?您是否也使用.ToString()输出格式显示毫秒?

答案 1 :(得分:0)

如果您希望将DateTime作为string milisecond,那么您可以使用以下代码;

string dateTime = dt.Value.ToString("yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture);                  

希望这有帮助。

答案 2 :(得分:0)

DateTimeFormatInfo.CurrentInfo.FullDateTimePattern