您好我正在编写一个返回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
获取日期时间答案 0 :(得分:2)
看起来您正在编写WCF服务。默认情况下,WCF使用DataContractJsonSerializer
进行JSON序列化 - 使用此格式。
您应该考虑使用replacing it with JSON.Net - 或者最好使用ASP.Net WebAPI来编写您的服务 - 已经使用JSON.Net。
JSON.Net将(默认情况下)使用ISO-8601序列化格式。这是通过网络发送日期的首选格式,尤其是在JSON中。例如,"2014-10-15T21:54:00-07:00"
。
您应该不使用DD MM YYYY
格式,因为JSON旨在是机器可读的。如果具有MM DD YYYY
文化的计算机尝试读取该字符串,则可能会错误解释该值。例如," 1/2 / 2014"可以读作1月2日或2月1日。
顺便说一句 - 您应该考虑在.NET中使用DateTimeOffset
类型而不是DateTime
。