简体中文

开发者工具·Unix时间戳转换器

微秒和纳秒纪元:缩短 16 和 19 数字值

· 工作原理

时间戳 unix 时间 开发人员工作流程

一个长纳秒值,从微秒缩小到毫秒
原始 ToolAcre 矢量图

某些运行时以微秒或纳秒为单位发出纪元,给出秒或毫秒转换器无法直接读取的十六位或十九位数字值。这篇文章解释了它们的来源以及如何安全地缩短它们。

跟踪中的十九位数字 — time.UnixNano 输出粘贴到转换器中,结果毫无意义

十九位跟踪字段可以是纳秒纪元,但将其直接粘贴到此转换器中并不能检验该假设。 ToolAcre 接受秒或毫秒。它的范围错误甚至暗示过大的数据库数字可能使用微秒或纳秒,指导用户在解​​释之前进行标准化。

在调查时保留原文。将其转换为普通的 JavaScript 数字已经可以在任何除法发生之前改变低位数字。生产者的模式、日志语句或数据库列定义比视觉长度更好的证据,特别是对于根本不是 Unix 纪元的计数器。

四种常见分辨率 - 秒、毫秒、微秒和纳秒,及其当前日期的位数

秒每秒前进一次,毫秒快一千倍,微秒快一百万倍,纳秒快十亿倍。目前,这些数字通常显示为十、十三、十六和十九个十进制数字。 “经常”很重要:负号、较早的日期和较远的范围打破了仅限数字的规则。

面板的自动阈值仅区分 1011 级的秒和毫秒。十六位微秒值超出该边界,将被视为毫秒,通常超出预期日期一千倍。仅在将不支持的分辨率减少为路线名称之一后才选择单位。

四种分辨率标签很常见,但数字计数本身并不是格式合同

该大纲命名了多种语言 API 和存储产品,但都不是该工具的源文件。不要假设哪个生产者发出了字段,而是检查其文档。诸如 `_us` 或 `_ns` 之类的后缀、声明的精度或已知的相邻事件提供了十进制宽度无法提供的证据。

还区分纪元和单调持续时间。高分辨率计数器可以测量自进程启动或引导以来的时间,并且与 1970 无关。除以这样的值会产生较小的计数器,而不是日历日期。在将结果传送到纪元转换器之前确认单位和原点。

确定生产者的决议,而不是假定的排放者列表

要将微秒减少到毫秒,请删除 1,000 系数;对于纳秒,删除 1,000,000。整数除法故意保留亚毫秒精度。对于正值,截断采用前导毫秒计数。对于负数,选择与生成器匹配的舍入规则,而不是假设字符串切片具有相同的语义。

当精度很重要时,使用十进制文本或 BigInt 进行运算。浮点除法可以从已经四舍五入的十九位数字开始。如果调查需要一毫秒内的事件顺序,则保留转换时刻旁边丢弃的余数; ToolAcre 无法显示这些亚毫秒级的差异。

工作示例:1700000000123456789 — 修剪到毫秒,读取结果,并记下您预留的亚毫秒数字

将 `1738577696123456789` 视为纳秒。将其视为十进制文本,用整数算术除以 1,000,000,并获得 1,738,577,696,123 毫秒,余数为 456,789 纳秒。明确输入毫秒商;其 ISO 读数为 `2025-02-03T10:14:56.123Z`。

其余部分不是噪音:两个跟踪事件可以共享显示的毫秒,但在其下方有所不同。存储用于订购的原始值,并仅将减少的输出用于人性化。向上舍入到 1,738,577,696,124 会将显示的时刻移动到下一个毫秒并错误地说明源。

字符串除法可以逐位查看:删除的六位小数完全对应于纳秒到毫秒的刻度,而未更改的前缀仍然是日历计数。

工作示例:将 19 数字值保留为文本,同时将其减少到毫秒

JavaScript 的精确整数保证远低于典型的 19 位纪元值。 ToolAcre 的解析器最终会调用 `Number`,因此通过面板输入原始纳秒文本无法保留每个数字。它支持的日期限制和单位选择器不会将 Number 转换为纳秒整数容器。

使用 BigInt 或字符串感知预处理路径进行缩减,然后传递安全大小的毫秒结果。这种顺序很重要:首先解析然后除法可能会精确地破坏您希望保留的数字。成功的日历渲染并不能证明低阶源值幸存下来。

这不包括什么 - 时钟精度,与分辨率无关:纳秒时间戳仍然可能以秒为单位出错

分辨率告诉您表示可以区分值的精细程度;它不会告诉您时钟与物理时间有多接近。纳秒场可能源自不准确的源,而秒场则可以很好地同步。该转换器没有时钟质量测量,也没有做出这样的声明。

类似地,额外的数字可以填充精度而不是测量精度。对于事件分析,使用同步证据比较时钟,并使用原始记录的计数器比较事件顺序。日历转换仅提供可读性。不要从长的小数尾或 ISO 中显示的三毫秒来推断精度。

要点:首先减少到毫秒,然后进行转换 — 以及 Unix 时间戳转换器如何使用指定的单位读取缩短的值

在转换前降低不支持的分辨率,保留原始分辨率,并说明丢弃的余数。然后,ToolAcre 可以履行其合同承诺:读取结果秒或毫秒,并显示 UTC、本地和 ISO 格式以及所选单位可见。

如果标准化日期仍然没有意义,请重新访问原点而不是重复删除数字。自启动以来的计数器、另一个纪元或未记录的编码在任何规模上都可能保持错误。单位、原点和整数精度是单独的问题;在信任人类可读的日期之前回答所有三个问题。

显式单位选择器在归约后很重要,因为自动检测只是默认值。选择毫秒记录预处理决策,而不是要求幅度启发式重新发现它。