JSONdate格式(无时间)从API返回

想知道是否应该删除通常存储的时间数据。 我们正在使用postgresnode.js ,其中DateTime将从我们的API返回,如下所示:

2013-07-01T00:00:00.000Z

然而,既然这个领域只应该代表一个约会,我觉得重新格式化之前这样会更清楚地表明时间是不相关的:

2013-07-01

思考?

       

网上收集的解决方案 "JSONdate格式(无时间)从API返回"

作为一个API用户,我宁愿接受一个长期的dateforms。

有几个原因:

  1. 时区 :长格式实际上有一个内置的时区。这很重要。
  2. parsing :大多数语言将能够读取长格式作为本地“date”对象。 在一些像C#和Java这样的语言中,这个短date需要被强制转换成使用正确的时区。 您还避免使用长格式的月/日混淆。
  3. 比较 :如果用户通过短date,您的API是否正确处理? 一个好的API需要看起来一样的进出。

如果您代表日历date,则不会有时间或时区。 短的代表性更有意义。

不幸的是,许多JavaScript实现中的新date(string)可能会对你造成不好的影响 。

 new Date('2015-09-23') Tue Sep 22 2015 20:00:00 GMT-0400 (Eastern Daylight Time) 

解决这个问题最简单的方法就是不使用javascript的Date – 这种types与其他语言的DateTimeOffset相匹配。 表示日历date值是一种不好的方法。

但是,你可能会使用javascript的date。 下一个最简单的“修复”是为了避免标准表示(因为标准表示被解释为UTC的DateTimeOffset)。 这里有两种可能性:

使用“/”而不是“ – ”。

 new Date('2015/09/23') Wed Sep 23 2015 00:00:00 GMT-0400 (Eastern Daylight Time) 

使用3位数的月份 – 前导零将被丢弃。

 new Date('2015-009-23') Wed Sep 23 2015 00:00:00 GMT-0400 (Eastern Daylight Time) 

如果你在客户端和服务器端都有javascript,就完成了。 如果你在服务器端有其他东西,你应该考虑如果服务器语言看到非标准的date格式,服务器语言将会做什么。