代码之家  ›  专栏  ›  技术社区  ›  Eldho

Json datetime包含时间开始的T

  •  0
  • Eldho  · 技术社区  · 6 年前

    为什么我的Json DateTime值 T型 在时间之前。

    1. 是因为数据类型是dateTime吗?
    2. 我可以删除T而不更改数据类型吗


     {
       "code": "Code",
       "date": "2018-05-02T20:02:24" //T
     },
    

    web API中的代码

    public IEnumerable<Result> MethodName()
    {
       var result = (from x in Context.Tabl1
                     select new Result
                     {
                       Code = x.Code,
                       Date = x.Date,// I dont want to apply ToString(format)
                     }).ToArray();
    }
    

     {
        "code": "Code",
        "date": "2018-05-02 20:02:24" //Without T
      },
    
    1 回复  |  直到 6 年前
        1
  •  8
  •   Jon Skeet    6 年前

    为什么我的Json DateTime值早于time。

    因为ISO-8601就是这么说的。ISO-8601中有各种日期/时间值选项,但所有选项都使用“T”将日期部分与时间部分分开。ISO-8601可能是机器可读的日期和时间表示为文本的最常用格式。

    机器可读部分在这里很重要。JSON是一种机器可读的格式,它也是一种合理的人类可读格式,就像XML一样。它并不打算成为非开发人员直接使用的格式。相反,表示层(UI、report generator,不管它是什么)旨在以最适合用户的表示形式格式化底层数据(“日期和时间”)。可以使用am/pm指示符、月份名称、特定于区域性的格式等—所有这些都适用于 人类 消费,但制造 机器 消费更难。

    我强烈要求你 离开ISO-8601。这是JSON最合适的表示。