0

我正在使用实体框架从 SQL Server 获取日期时间。我的数据库中的格式是2013-01-01 00:00:00.000当我通过实体框架以 JSON 格式获取它时,它是"\\/Date(1356980400000+0500)\\/".

这是我的代码

public class SurveyData
{       
        [DataMember]
        public DateTime? CreatedDate { get; set; } 
}

var surveyDataList = (from survey in context.FDT_SURVEY                             
                      where survey.Name == surveyName 
                      select new SurveyData
                          {
                              SurveyID = SqlFunctions.StringConvert((double)survey.SURVEY_ID).Trim(),
                              CreatedDate = survey.CREATED_DATE,
                          }
    );

在我的数据库中,数据类型CREATED_DATEdatetime.

无法理解是什么问题。任何帮助!

4

2 回答 2

3

尝试这个:

    [DisplayFormat(DataFormatString = "{0,d}")]
    [DataType(DataType.DateTime)]
    public DateTime? CreatedDate { get; set; } 
于 2013-05-16T11:26:23.737 回答
1

实体框架不返回 JSON 格式的任何内容。它用数据填充 .NET 对象,或者用来自 .NET 对象的数据填充数据库。我相信,附加调试器将表明它CreatedDate具有正确的值。

实际问题更可能与 JSON 没有“日期”或“日期时间”类型的概念有关,尽管对问题有评论。请参阅“正确的”JSON 日期格式。一些序列化代码采用 .NETSurveyData类并使用 .NET 框架的 JSON 序列化程序(可能是.NET 序列化程序)将其序列化为 JSON DataContractJsonSerializer,并以您所看到的格式将其写出。这可能是 WCF 或旧版本的 ASP.NET MVC 或 Web API。

更高版本的 ASP.NET 使用NewtonSoft JSON.net库来执行对象的序列化。默认情况下,这些使用 ISO 8601 格式,这是世界上大多数人在 JSON 对象中对日期或日期时间字段的期望。

于 2015-08-20T16:40:51.103 回答