获取DateTime.现在以毫秒的精度

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (56)

我如何准确地构造一个毫秒精度的实际时间标记?

我需要16.4.2013 9:48:123。这有可能吗?我有一个应用程序,在这个应用程序中,我以每秒10次的速度采样值,我需要在一个图表中显示它们。

提问于
用户回答回答于

这样做应该可行:

DateTime.Now.ToString("hh.mm.ss.ffffff");

如果不需要显示它,只需要知道时间差,那么就不要将其转换为字符串。把它放在一边,DateTime.Now();

和使用TimeSpan要知道时间间隔之间的差异:

DateTime start;
TimeSpan time;

start = DateTime.Now;

//Do something here

time = DateTime.Now - start;
label1.Text = String.Format("{0}.{1}", time.Seconds, time.Milliseconds.ToString().PadLeft(3, '0'));
用户回答回答于

我如何准确地构造一个毫秒精度的实际时间标记?

DateTime虽然精度很高,但在精度上却相当粗糙。一般来说,你不能。通常是系统时钟DateTime.Now获取其数据),分辨率约为10-15毫秒。

如果需要更准确的计时,可能需要查看使用NTP客户端。

然而,还不清楚你是否真的需要毫秒的精确性。如果你不在乎精确性计时-你只是想以正确的顺序显示样本,以“相当好”的准确性,然后系统时钟应该是好的。

如果你的问题是其实转换DateTime对于毫秒精度的字符串,我建议使用:

string timestamp = DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm:ss.fff",
                                            CultureInfo.InvariantCulture);

扫码关注云+社区