DateTime丢失毫秒

我正在将文件中的日期解析为字符串并将其转换为DateTime以便我可以将其与之前的日期进行比较。 当我这样做时,我正在丢失毫秒,这非常重要,因为我正在解析我正在解析的文件中的行。

文件中的日期示例我正在提取: 2014/11/12 10:47:23.571 m_LatestProcessDate在我执行ParseExact之后12/11/2014 10:47:23

请参阅下面我正在使用的代码行。 我是如何解决这个问题的?

 DateTime m_LatestProcessDate = DateTime.ParseExact(m_CurrentDateString, "yyyy/MM/dd HH:mm:ss.fff", CultureInfo.InvariantCulture); 

CodeCaster已经解释了你的问题,我想把它作为一个答案,如果他让我的话……

别担心! 你的毫秒没有丢失。 他们还在那里。 当你试图表示你的m_LatestProcessDate时,听起来你只是没有看到它们,这可能是因为你的DateTime 字符串表示没有毫秒部分。

在此处输入图像描述

例如,如果使用不带任何参数的DateTime.ToString()方法 ,则此方法使用CurrentCulture "G"标准格式 。

此说明符将DateTime格式化为ShortDatePattern + LongTimePattern 。 并且没有文化在它的LongTimePattern上有Millisecond部分。

例如; InvariantCulture具有HH:mm:ss格式,不代表毫秒部分。

您可以看到m_LatestProcessDate的毫秒数;

 Console.WriteLine(m_LatestProcessDate.ToString("fff")); // prints 571