JSON 中 Duration 的良好格式是什么?
What is a good format for Duration in JSON?
我意识到 JSON 没有真正的日期格式,使用 ISO 8601 是一个不错的选择,因为 JavaScript 使用的是 ISO 8601。持续时间呢? JavaScript 没有内置格式。
- 我遇到了 ISO 8601 Durations 例如
P3Y6M4DT12H30M5S
我没见过它在野外使用太多。它看起来也非常冗长且难以阅读。据我所知,如果您需要的话,它也不支持毫秒。
- 我正在使用 C#,其
TimeSpan
类型输出 1.02:03:04.0050000
1 天 2 小时 3 分钟 4 秒 5 毫秒。
- 我可以使用秒数或毫秒数作为整数。这完全是机器可读的,如果您使用的是秒或毫秒而没有这样标记值,则并不明显。
我几乎没见过第一种格式。第二个对我来说似乎更直观,但我担心它在 .NET 之外并不为人所知。第三种格式可能是最跨平台的,但完全不是人类可读的。
我认为秒(或者对于需要这种精度水平的较短持续时间的项目,毫秒)是预期的单位。
基本上,持续时间是毫秒数或滴答数(如果您需要更高的精度)。
1 tick is 100 nanoseconds. There are 10,000 ticks in a millisecond.
ISO 8601:现有标准
最好的方法是使用您提到的通用标准 ISO 8601。它是人类和机器可读的。
什么对您来说更容易阅读和更改?
- 1036800000 毫秒
- P12D
您可以像 P1Y2M10DT2H30M
一样以不同的方式使用 ISO 8601 持续时间:
Keep in mind that ISO 8601 also resolves the issue when switching from or to Daylight saving time.
PT36H
is not the same as P1DT12H
.
Schema.org
schema.org 上的 Internet 上有不同的结构化数据架构。他们中的数量正在使用 Duration 应该用 ISO 8601 duration format
.
来表示
我意识到 JSON 没有真正的日期格式,使用 ISO 8601 是一个不错的选择,因为 JavaScript 使用的是 ISO 8601。持续时间呢? JavaScript 没有内置格式。
- 我遇到了 ISO 8601 Durations 例如
P3Y6M4DT12H30M5S
我没见过它在野外使用太多。它看起来也非常冗长且难以阅读。据我所知,如果您需要的话,它也不支持毫秒。 - 我正在使用 C#,其
TimeSpan
类型输出1.02:03:04.0050000
1 天 2 小时 3 分钟 4 秒 5 毫秒。 - 我可以使用秒数或毫秒数作为整数。这完全是机器可读的,如果您使用的是秒或毫秒而没有这样标记值,则并不明显。
我几乎没见过第一种格式。第二个对我来说似乎更直观,但我担心它在 .NET 之外并不为人所知。第三种格式可能是最跨平台的,但完全不是人类可读的。
我认为秒(或者对于需要这种精度水平的较短持续时间的项目,毫秒)是预期的单位。
基本上,持续时间是毫秒数或滴答数(如果您需要更高的精度)。
1 tick is 100 nanoseconds. There are 10,000 ticks in a millisecond.
ISO 8601:现有标准
最好的方法是使用您提到的通用标准 ISO 8601。它是人类和机器可读的。
什么对您来说更容易阅读和更改?
- 1036800000 毫秒
- P12D
您可以像 P1Y2M10DT2H30M
一样以不同的方式使用 ISO 8601 持续时间:
Keep in mind that ISO 8601 also resolves the issue when switching from or to Daylight saving time.
PT36H
is not the same asP1DT12H
.
Schema.org
schema.org 上的 Internet 上有不同的结构化数据架构。他们中的数量正在使用 Duration 应该用 ISO 8601 duration format
.