修改JSON日期-时间对象格式

本文关键字:对象 格式 时间 JSON 日期 修改 | 更新日期: 2023-09-27 18:26:43

嗨,我正在编写一个返回DateTime的JSON Web服务。

它以EPOCH格式返回日期时间。是否可以修改它返回的JSON日期格式。

代码段

  [ServiceContract]
    public interface ITMAppServices
    {
          [OperationContract]
          [WebGet(UriTemplate = "/Test",
          RequestFormat = WebMessageFormat.Json,
          ResponseFormat = WebMessageFormat.Json)]
        DateTime GetData();
    }

的实际实施

public class TMAppServices : ITMAppServices
 {
     public DateTime GetData()
     {
          return DateTime.Now;
     }
 }

我只是在C#中返回datetime.now

EPOCH格式输出:

"/日期(1413399311687+0300)/"

我想要C返回的相同格式的输出#或者,如果我从SQL 获得日期时间

修改JSON日期-时间对象格式

看起来您正在编写WCF服务。默认情况下,WCF使用DataContractJsonSerializer进行JSON序列化,该序列化使用此格式。

您应该考虑用JSON.Net替换它,或者最好用ASP.Net WebAPI编写服务,因为ASP.Net已经使用了JSON.Net.

JSON.Net将(默认情况下)使用ISO-8601序列化格式。这是通过有线发送日期的首选格式,尤其是在JSON中。例如,"2014-10-15T21:54:00-07:00"

您不应该使用DD MM YYYY格式,因为JSON是机器可读的。如果具有MM DD YYYY区域性的机器试图读取字符串,则可能会误解该值。例如,"2014年1月2日"可以读作1月2号或2月1日。

顺便说一句,您可能应该考虑在.NET中使用DateTimeOffset类型,而不是DateTime