获得毫秒数

时间:2015-01-23 05:20:46

标签: c# time milliseconds

只需要在C#中以毫秒为单位对当前程序的进展进行稳定计数。我不关心它的时间戳,无论是程序启动时间,午夜还是时代,我只需要一个返回稳定毫秒值的函数,除了增加1之外,它不会以异常方式改变每毫秒。你会惊讶地发现我找不到一些全面而简单的答案。

编辑:为什么要从我的标题中删除C#?我认为这是一个非常重要的信息。

4 个答案:

答案 0 :(得分:1)

当您的计划开始时,请创建StopWatchStart()

private StopWatch sw = new StopWatch();

public void StartMethod()
{
  sw.Start();
}

您可以随时查询秒表:

public void SomeMethod()
{
  var a = sw.ElapsedMilliseconds;
}

如果您想要准确/精确的内容,那么您需要使用StopWatch,请阅读Eric Lippert的博客(以前是C#编译器团队的首席开发人员)Precision and accuracy of DateTime

摘录:

  

现在,“从开始到结束已经过了多长时间?”的问题是一个完全不同的问题,而不是“现在几点了?”如果您想问的问题是某些操作需要多长时间,以及你想要一个高精度,高精度的答案,然后使用StopWatch类。它确实具有接近其精度的纳秒精度和精度。

如果您不需要准确的时间,并且您不关心精确度以及导致您的毫秒实际上的边缘情况的可能性,那么请使用DateTime

答案 1 :(得分:0)

您可以在程序启动时以毫秒为单位存储当前时间,然后在您的函数中再次获取当前时间并减去

编辑:

如果您需要的是稳定的过程周期数,我会使用处理器时钟而不是时间。

根据您的评论,您可以使用DateTime.Ticks,即每个刻度1 / 10,000毫秒

此外,如果你想做时间的事情,你可以使用DateTime.Now作为你在启动程序时存储的变量,并在你想要的时候再做一次DateTime.Now。它有一毫秒的属性。

无论哪种方式 DateTime 都是你要找的东西

答案 2 :(得分:0)

听起来你只是试图获得当前的日期和时间,以毫秒为单位。如果您只是尝试获取当前时间(以毫秒为单位),请尝试以下操作:

long milliseconds = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;

答案 3 :(得分:-1)

你的意思是DateTime.Now?它保留绝对时间,减去两个DateTime实例会为您提供一个具有TimeSpan属性的TotalMilliseconds对象。