从API返回的JSON日期格式(无时间)

从API返回的JSON日期格式(无时间),json,node.js,datetime,date-formatting,Json,Node.js,Datetime,Date Formatting,不知道我是否应该删除通常存储的时间数据。我们正在使用postgres和node.js从API返回日期时间,如下所示: 2013-07-01T00:00:00.000Z 然而,由于该字段只应表示日期,我觉得在返回之前重新格式化,这样会更清楚地表明时间不相关: 2013-07-01 想法?作为一名API用户,我更希望收到一份长格式的约会 出于以下几个原因: 时区:长格式实际上内置了一个时区。这很重要 解析:大多数语言都能够将这种长格式作为本机“日期”对象读取。在一些语言中,如C#&Java,需要强制

不知道我是否应该删除通常存储的时间数据。我们正在使用
postgres
node.js
从API返回日期时间,如下所示:

2013-07-01T00:00:00.000Z

然而,由于该字段只应表示日期,我觉得在返回之前重新格式化,这样会更清楚地表明时间不相关:

2013-07-01


想法?

作为一名API用户,我更希望收到一份长格式的约会

出于以下几个原因:

  • 时区:长格式实际上内置了一个时区。这很重要
  • 解析:大多数语言都能够将这种长格式作为本机“日期”对象读取。在一些语言中,如C#&Java,需要强制短日期使用正确的时区。您还可以避免长格式的月/日混淆
  • 比较:如果用户在短时间内通过,您的API是否能够正确处理该问题?一个好的API需要在输入和输出时保持相同的外观

  • 如果表示日历日期,则没有时间或时区。简短的表示更有意义

    不幸的是,许多javascript实现中的新日期(字符串)可能会影响您

    解决此问题的最简单方法是不使用javascript的日期-此类型与其他语言中的DateTimeOffset匹配。表示日历日期值的方式不好

    但是,无论如何,您可能会使用javascript的日期。下一个最简单的“修复”是避免使用标准表示法(因为标准表示法被解释为使用UTC的DateTimeOffset)。这里有两种可能性:

    使用“/”而不是“-”

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

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

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

    听起来对我来说是合理的。创建具有生日列、日期类型的用户表。因此,它应该只有日期(没有时间)。使用node-postgres进行查询时获取时间。确定,但时区与日期不相关。时区会让事情变得糟糕(例如,如果我的生日是1900年1月15日,在中国也是1900年1月15日,尽管时区可能会影响这一点。)
    new Date('2015/09/23')
    Wed Sep 23 2015 00:00:00 GMT-0400 (Eastern Daylight Time)
    
    new Date('2015-009-23')
    Wed Sep 23 2015 00:00:00 GMT-0400 (Eastern Daylight Time)