Dot-Net
JSON中持續時間的好格式是什麼?
我意識到 JSON 沒有真正的日期格式,並且考慮到 JavaScript 使用的是 ISO 8601 是一個不錯的選擇。持續時間呢?JavaScript 沒有內置格式。
- 我遇到了ISO 8601 持續時間,例如
P3Y6M4DT12H30M5S我在野外使用的不多。它看起來也非常冗長且難以閱讀。據我所知,如果您需要,它也不支持毫秒。- 我正在使用 C#,其
TimeSpan類型輸出1.02:03:04.0050000為 1 天、2 小時、3 分鐘、4 秒和 5 毫秒。- 我可以使用秒數或毫秒數作為整數。這完全是機器可讀的,如果您使用秒或毫秒而不標記值,這並不明顯。
我幾乎從未見過野外的第一種格式。第二個對我來說似乎更直覺,但我擔心它在 .NET 之外並不為人所知。第三種格式可能是最適合跨平台的,但完全不適合人類閱讀。
基本上,持續時間是毫秒或滴答數(如果您需要更高的精度)。
1 個滴答是 100 納秒。一毫秒內有 10,000 個滴答聲。
ISO 8601:現有標準
最好的方法是使用您提到的通用標準ISO 8601。它是人和機器可讀的。
什麼對你來說更容易閱讀和改變?
- 1036800000 毫秒
- P12D
您可以通過
P1Y2M10DT2H30M不同的方式使用 ISO 8601 持續時間:
- 在 JavaScript 中由moment.js處理
- 以 JSON 格式作為
string值傳遞- 在 C# 中由NodaTime處理
- 儲存在數據庫中
請記住,ISO 8601 還解決了切換夏令時時的問題。
PT36H不一樣P1DT12H。Schema.org
網際網路上 schema.org 上的結構化數據有不同的模式。他們中的一些人正在使用Duration,應該用 來表示
ISO 8601 duration format。