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