标签: time-precision

System.currentTimeMillis vs System.nanoTime

精度与 精确

我想知道的是在更新我的对象在游戏中的位置时是否应该使用System.currentTimeMillis()System.nanoTime()?它们的运动变化与自上次呼叫后经过的时间成正比,我希望尽可能精确.

我读过不同的操作系统之间存在一些严重的时间分辨率问题(即Mac/Linux的分辨率几乎为1毫秒,而Windows的分辨率为50毫秒).我主要在Windows上运行我的应用程序,50ms分辨率似乎非常不准确.

有没有比我列出的两个更好的选择?

有什么建议/意见吗?

java timer time-precision

370
推荐指数
7
解决办法
37万
查看次数

如何使用ANSI C测量时间(以毫秒为单位)?

仅使用ANSI C,有没有办法以毫秒或更多精度测量时间?我正在浏览time.h但我只发现了第二个精确功能.

c portability time-precision

118
推荐指数
6
解决办法
21万
查看次数

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

我正在制作一个程序,我需要在几毫秒内获得时间.到时候,我的意思是一个永远不会与自己相等的数字,并且总是比一秒钟前更大的1000个数字.我已经尝试过转换DateTime.Now为a TimeSpanTotalMilliseconds从中得到...但我听说它并不完全准确.

有更简单的方法吗?

c# datetime time-precision milliseconds

114
推荐指数
6
解决办法
30万
查看次数

在c#中创建时间戳的函数

我想知道,有没有办法在日期时间在c#中创建时间戳?我需要一个毫秒精度值,它也可以在Compact Framework中工作(说因为CF中不存在DateTime.ToBinary()).

我的问题是我想以数据库无关的方式存储这个值,所以我可以稍后对其进行排序,并找出哪个值来自另一个等等.

c# timestamp compact-framework time-precision database-agnostic

100
推荐指数
4
解决办法
26万
查看次数

C#DateTime.Now精度

我在进行一些单元测试时遇到了DateTime.UtcNow的一些意外行为.看起来当你快速连续调用DateTime.Now/UtcNow时,它似乎会给你一个长于预期的时间间隔的相同值,而不是捕获更精确的毫秒增量.

我知道有一个秒表类更适合做精确的时间测量,但我很好奇是否有人可以在DateTime中解释这种行为?是否有针对DateTime.Now记录的官方精度(例如,精确到50毫秒内?)?为什么DateTime.Now会不像大多数CPU时钟那样精确?也许它只是为最低公分母CPU而设计的?

public static void Main(string[] args)
{
    var stopwatch = new Stopwatch();
    stopwatch.Start();
    for (int i=0; i<1000; i++)
    {
        var now = DateTime.Now;
        Console.WriteLine(string.Format(
            "Ticks: {0}\tMilliseconds: {1}", now.Ticks, now.Millisecond));
    }

    stopwatch.Stop();
    Console.WriteLine("Stopwatch.ElapsedMilliseconds: {0}",
        stopwatch.ElapsedMilliseconds);

    Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)

.net c# precision datetime time-precision

91
推荐指数
5
解决办法
5万
查看次数

有没有办法使用JavaScript获得当前时间(以纳秒为单位)?

所以,我知道我可以使用JavaScript获得当前时间(以毫秒为单位).但是,是否有可能以纳秒为单位获得当前时间?

javascript precision time time-precision

42
推荐指数
6
解决办法
4万
查看次数

现代PC的内部时钟有多精确?

我知道10年前,典型的时钟精度等于系统标记,其范围为10-30ms.在过去几年中,精确度分多步增加.如今,有一些方法可以测量实际纳秒的时间间隔.但是,通常的框架仍然会以大约15ms的精度返回时间.

我的问题是,哪些步骤确实提高了精度,如何以纳秒为单位进行测量,以及为什么我们仍然经常获得小于微秒的精度(例如在.NET中).

(免责声明:我之前没有问过这个奇怪的事情,所以我猜我在搜索时错过了这个问题.请关闭并指出我的问题,谢谢.我相信这属于SO而不是任何其他SOFU网站.我理解精度和准确度之间的区别.)

datetime clock time-precision

24
推荐指数
2
解决办法
2万
查看次数

解析包含纳秒的日期时间字符串

我有一些日志文件,其格式为HH:MM :: SS.nano_seconds(例如01:02:03.123456789).我想在python中创建一个日期时间,这样我就可以整齐地做数学的时间(例如,采取时间差异).strptime 使用%f 可以很好地工作几微秒.Python日期时间和时间模块真的不支持纳秒吗?

python datetime time-precision strptime

17
推荐指数
4
解决办法
2万
查看次数

在MySQL中存储微秒:哪种解决方法?

我们正在编写一个支持MySQL的科学工具.问题是,我们的日期时间字段需要微秒精度,MySQL目前不支持.我在这里看到至少两个解决方法:

  • 使用decimal()列类型,从某个时间点开始对应于秒的整数部分(我怀疑UNIX纪元会这样做,因为我们必须存储60年代和50年代的测量值).
  • 使用两个整数列,一个用于秒,另一个用于微秒.

最流行的查询是选择对应于时间间隔的列(即dt_record> time1和dt_record <time2).

在大型表(数百万行)的情况下,这些方法中的哪一种(或者可能是另一种方法)可能提供更好的性能?

mysql performance datetime time-precision

10
推荐指数
2
解决办法
1万
查看次数

MySQL加入/比较DATETIME列(<5.6.4和> 5.6.4)

假设我有两个这样的表:

Events
ID (PK int autoInc), Time (datetime), Caption (varchar)

Position
ID (PK int autoinc), Time (datetime), Easting (float), Northing (float)
Run Code Online (Sandbox Code Playgroud)

例如,如果我使用该Time字段作为我的加入标准,列出所有事件及其位置是否安全?即:

SELECT E.*,P.* FROM Events E JOIN Position P ON E.Time = P.Time
Run Code Online (Sandbox Code Playgroud)

或者,甚至只是简单地比较日期时间值(考虑到参数化值可能包含小数秒部分 - MySQL一直接受的部分),例如

SELECT E.* FROM Events E WHERE E.Time = @Time
Run Code Online (Sandbox Code Playgroud)

我理解MySQL(版本5.6.4之前)只存储datetime字段WITHOUT毫秒.所以我认为这个查询功能正常.但是从版本5.6.4开始,我已经读过MySQL现在可以使用datetime字段存储毫秒.

假设使用诸如函数插入日期时间值NOW(),则截断毫秒(<5.6.4),我假设允许上述查询起作用.但是,对于5.6.4及更高版本,这可能无法正常工作.我,并且只会对第二准确性感兴趣.

如果有人能回答以下问题,将不胜感激:

  1. 一般来说,MySQL如何将日期时间字段相互比较(考虑上面的查询).
  2. 以上查询是否正常,是否在时间字段中使用索引?(MySQL <5.6.4)
  3. 有没有办法排除毫秒?即插入和条件连接/选择等?(MySQL> 5.6.4)
  4. 上面的联接查询是否有效?(MySQL> 5.6.4)

编辑

我知道我可以投出日期时间,感谢那些回答,但我正在尝试解决问题的根源(存储类型/定义已被更改的事实),我不想在我的使用函数查询.这否定了我优化应用索引等查询的所有工作,更不用说重写我的所有查询了.

EDIT2

任何人都可以建议不DATETIME使用第二准确度加入某个领域的原因吗?

mysql datetime time-precision

8
推荐指数
1
解决办法
1140
查看次数