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

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

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

有帮助吗?

解决方案

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

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

如果准确的话 系统之间需要精确的时间分辨率,GPS 接收器可以轻松实现 100 纳秒的精度 它们工作方式的副作用, ,许多廉价型号的性能也达到 10 ns。 特殊GPS型号 使导出的时间可供外部使用。

其他提示

你是否想要生成类似的东西 Unix时间戳 为了数据?或者找到一个不会与现有文件冲突的时间戳?如果是后者,您可以随时使用蜱虫。

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

如果数据是安全/敏感的,并且您正在寻找基于时间的同步密钥机制(ALA 克伯罗斯)我不建议自己动手,因为有很多障碍需要克服,特别是在同步系统和保持同步方面。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top