c# - 以毫秒精度获取 DateTime.Now

标签 c# datetime precision milliseconds

我怎样才能准确地构造一个精确到毫秒的实际时间的时间戳?

我需要像 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/

相关文章:

c# - 如何在 WPF 中使用每张多页的 DocumentViewer 预览文档

javascript - Perl DateTime的纪元是毫秒还是秒?

python - 具有非常小的值的 Numpy 数组运算精度

java - 对双数取模

c# - 如何在命令行上将运行时参数传递给 dotnet test?

c# - 将文本框格式化为 MM/YYYY

python - pandas.DataFrame.to_csv : selectively apply date_format by column

php - MySQL:最好使用什么,Unix TimeStamp 或 DATETIME

sql-server - SQL Server 转换因算术溢出而失败

c# - ListView 项添加事件