为什么NodaTime JSON.net串行器不使用ISO8601时间间隔格式来表示开始和结束的时间是否有原因?
示例ISO8601时间间隔:
"2007-03-01T13:00:00Z/2008-05-11T15:30:00Z"NodaTime复杂JSON:
{ Start: "2007-03-01T13:00:00Z", End: "2008-05-11T15:30:00Z" }ISO8601格式不太适合NodaTime中的间隔概念吗?
发布于 2014-02-21 09:23:22
为什么NodaTime JSON.net序列化程序不使用ISO8601时间间隔格式来表示开始和结束时间?
是。当我阅读ISO-8601时,我没有发现它。这不是一个很好的理由,但这是正确的理由。
ISO8601格式不太适合NodaTime中的间隔概念吗?
不,这是一个完美的契合(和ISO-8601的其他部分一样好),我们绝对应该使用它。我不认为ISO-8601指定开始是包容性的,结束是独占的,但这不需要成为一个问题。
我怀疑我们希望使用的格式将是扩展的ISO格式,以包括子秒值,与其他所有内容一致,但我怀疑这种扩展是相当普遍的。
在配置JSON序列化程序时,我们需要将它作为一个选项,这是一个小麻烦,但我们肯定应该使它可用。
我打开了特征请求270来报道这件事。
发布于 2014-02-22 23:14:09
对此,我的反应与乔恩略有不同。我欢迎任何反驳。
为什么NodaTime JSON.net序列化程序不使用ISO8601时间间隔格式来表示开始和结束时间?
是。通过将间隔的起始点和结束点保持为单独的值,任何JSON解析器都可以单独寻址它们。由于间隔的每个瞬间都以UTC表示(以"Z“结尾),所以它们也可以单独排序。
这使得在基于JSON的数据库(如RavenDB )中执行范围查询变得非常容易。(另见RavenDB-NodaTime)
它还允许快速计算有效性(start <= end)和持续时间(end-start),而不必突破JSON并拆分字符串。
ISO间隔格式在这里可以工作,但从JSON的角度来看,它不太方便。
ISO8601格式不太适合NodaTime中的间隔概念吗?
这是野田佳彦的最佳时机。只是这不太适合JSON。我预计Noda时间的Interval.ToString()和相关文本模式将使用ISO格式。如果他们不这样做,那么在未来的发行版中还有一些工作要做。
https://stackoverflow.com/questions/21910423
复制相似问题