我怎样才能准确地构造一个精确到毫秒的实际时间的时间戳?
我需要像 16.4.2013 9:48:00:123 这样的东西。这可能吗?我有一个应用程序,我每秒对值进行 10 次采样,我需要在图表中显示它们。
最佳答案
How can I exactly construct a time stamp of actual time with milliseconds precision?
我怀疑你的意思是毫秒精度。 DateTime
具有很高的精度,但在准确性方面相当粗糙。一般来说,你不能。通常系统时钟(DateTime.Now
从中获取数据)的分辨率约为 10-15 毫秒。参见 Eric Lippert 的 blog post about precision and accuracy了解更多详情。
如果您需要比这更准确的计时,您可能需要考虑使用 NTP 客户端。
但是,目前尚不清楚您是否真的需要毫秒精度。如果您不关心精确时间 - 您只想以正确的顺序显示示例,并具有“相当不错”的准确性,那么系统时钟应该没问题。不过,我建议您使用 DateTime.UtcNow
而不是 DateTime.Now
,以避免围绕夏令时转换等出现时区问题。
如果您的问题实际上只是将 DateTime
转换为具有毫秒精度的字符串,我建议您使用:
string timestamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff",
CultureInfo.InvariantCulture);
(请注意,与您的示例不同,这是可排序的,并且不太可能导致混淆是“月/日/年”还是“日/月/年”。)
关于c# - 以毫秒精度获取 DateTime.Now,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16032451/