3

我不确定这个问题是否属于 StackOverflow,但在这里。

我需要使用 C# 为要从一方传输到另一方的某些数据生成时间戳,并且我需要知道所有操作系统(Windows、Linux 和 Unix)中系统时钟的最坏情况精度是多少?我需要的是弄清楚所有操作系统都能够验证这个时间戳的精度。

例如,Windows Vista 操作系统的时钟分辨率约为 10-15 毫秒。

4

2 回答 2

1

您是否希望为数据生成诸如unix 时间戳之类的东西?或者找到一个不会与现有文件冲突的时间戳?如果是后者,您总是可以使用刻度线。

任何“长”时间戳的问题在于,它将与生成它的机器相关,但不能保证在其他系统上不会发生冲突,因为时钟可以设置不同(不是浮动,但实际上设置不同)。

如果数据是安全/敏感的,并且您正在寻找一种基于时间的密钥同步机制(ALA Kerberos),我不建议您自己动手,因为有许多障碍需要克服,尤其是在同步系统中并保持它们在同步。

于 2009-12-19T03:36:18.113 回答
0

有趣的。主要操作系统在最坏的情况下具有厘米分辨率(0.01 秒),尽管它通常以更高的精度嵌入。

Linux 在其时间戳中提供高达微秒的分辨率(请参阅 参考资料man utime),具体取决于计算机的时钟硬件。Windows NT/Win2K/XP/等。提供文件时间戳的毫秒精度(仅使用 NTFS),尽管它以0.000 000 1秒为单位(每秒一千万)考虑所有系统时间戳。

如果系统之间需要准确精确的时间分辨率,GPS 接收器很容易达到 100 纳秒的精度,这是它们工作方式的副作用,而许多廉价型号的精度可以达到 10 纳秒。 特殊的 GPS 模型使导出的时间可供外部使用。

于 2009-12-19T04:16:07.143 回答