[英]DateTime.ParseExact omitting milliseconds in c#?
我正在尝试将字符串转换为 c# 中的日期时间。 字符串日期字符串 = 2013/03/18 10:54:07.679
我试过DateTime dt=DateTime.ParseExact(datestring, "yyyy/MM/dd HH:mm:ss.fff",null);
结果是 {3/18/2013 10:54:07 AM}
我试过DateTime.TryParseExact(datestring,"yyyy/MM/dd HH:mm:ss.fff",CultureInfo.InvariantCulture,DateTimeStyles.None,out dttt);
结果是 {3/18/2013 10:54:07 AM}
在上述两种情况下,它都会省略毫秒(679)。
如何通过保持毫秒将其正确转换为日期时间?
它并没有忽略您只是通过调试器进行检查,并且调试器使用 AM 或 PM 显示它,它不显示毫秒部分。
尝试这个:
DateTime dt=DateTime.ParseExact(datestring, "yyyy/MM/dd HH:mm:ss.fff",null);
Console.WriteLine(dt.ToString("yyyy/MM/dd HH:mm:ss.fff"));
编辑:来自您的评论But I need the answer in Datetime instead of string
您已经有了包含MilliSeconds
的 DateTime,只是调试器没有显示,因为(如Ant P
评论中所述)调试器调用ToString()
方法的无参数重载,该方法显示没有 MilliSeconds 的DateTime
。
您需要注意,当时间包含 2 位毫秒时,解析精确字符串 fff 将不起作用。
例如,在我的情况下,我有 2019-08-19 13:35:06.27 不会解析,但 2019-08-20 13:35:04.274 会正确解析。 我认为它也会在 1 位数和 0 位数毫秒内发生。
它仅在毫秒有尾随零时才有效。 例如 0.270
例子:
string x = "2019-08-20 13:35:04.27";
DateTime d;
bool result = DateTime.TryParseExact(x, "yyyy-MM-dd HH:mm:ss.fff",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None, out d);
Console.WriteLine(result);
使用大写 FFF
DateTime.ParseExact("15.06.2020 15:52:04.9", "dd.MM.yyyy HH:mm:ss.FFF", CultureInfo.CurrentCulture)
https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.