首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodaTime区间JSON序列化

NodaTime区间JSON序列化
EN

Stack Overflow用户
提问于 2014-02-20 14:16:24
回答 2查看 631关注 0票数 6

为什么NodaTime JSON.net串行器不使用ISO8601时间间隔格式来表示开始和结束的时间是否有原因?

示例ISO8601时间间隔:

代码语言:javascript
复制
"2007-03-01T13:00:00Z/2008-05-11T15:30:00Z"

NodaTime复杂JSON:

代码语言:javascript
复制
{ Start: "2007-03-01T13:00:00Z", End: "2008-05-11T15:30:00Z" }

ISO8601格式不太适合NodaTime中的间隔概念吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-21 09:23:22

为什么NodaTime JSON.net序列化程序不使用ISO8601时间间隔格式来表示开始和结束时间?

是。当我阅读ISO-8601时,我没有发现它。这不是一个很好的理由,但这是正确的理由。

ISO8601格式不太适合NodaTime中的间隔概念吗?

不,这是一个完美的契合(和ISO-8601的其他部分一样好),我们绝对应该使用它。我不认为ISO-8601指定开始是包容性的,结束是独占的,但这不需要成为一个问题。

我怀疑我们希望使用的格式将是扩展的ISO格式,以包括子秒值,与其他所有内容一致,但我怀疑这种扩展是相当普遍的。

在配置JSON序列化程序时,我们需要将它作为一个选项,这是一个小麻烦,但我们肯定应该使它可用。

我打开了特征请求270来报道这件事。

票数 4
EN

Stack Overflow用户

发布于 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格式。如果他们不这样做,那么在未来的发行版中还有一些工作要做。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21910423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档