首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用C#获取时间(以毫秒为单位

使用C#获取时间(以毫秒为单位
EN

Stack Overflow用户
提问于 2010-10-26 00:03:45
回答 7查看 362.4K关注 0票数 147

我正在编写一个程序,其中我需要获取以毫秒为单位的时间。所谓时间,我指的是一个永远不会等于它自己的数字,而且总是比一秒前大1000个数字。我曾尝试将DateTime.Now转换为TimeSpan,并从中获取TotalMilliseconds ...但我听说它并不完全准确。

有没有更简单的方法来做这件事?

EN

回答 7

Stack Overflow用户

发布于 2010-10-26 00:07:05

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

这实际上是各种Unix转换方法在DateTimeOffset类(.NET框架4.6+、.NET标准1.3+)中的实现方式:

long milliseconds = DateTimeOffset.Now.ToUnixTimeMilliseconds();
票数 387
EN

Stack Overflow用户

发布于 2010-10-26 00:05:25

DateTime.Ticks属性获取表示日期和时间的刻度数。

10,000滴答是一毫秒(每秒10,000,000滴答)。

票数 15
EN

Stack Overflow用户

发布于 2010-10-26 00:06:32

您可以尝试使用QueryPerformanceCounter原生方法。有关详细信息,请参阅http://www.pinvoke.net/default.aspx/kernel32/QueryPerformanceCounter.html。这就是Stopwatch类所使用的。

有关详细信息,请参阅How to get timestamp of tick precision in .NET / C#?

Stopwatch.GetTimestamp()提供对此方法的访问:

public static long GetTimestamp() {
     if(IsHighResolution) {
         long timestamp = 0;
         SafeNativeMethods.QueryPerformanceCounter(out timestamp);
         return timestamp;
     }
     else {
         return DateTime.UtcNow.Ticks;
     }
 }
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4016483

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档