修改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 获得日期时间
看起来您正在编写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
。