在解析日期上增加了一个小时

时间:2018-09-22 18:14:29

标签: asp.net-core

我将其发布到ASP.net Core操作中...

{
   "Start":"2018-09-30T00:00:00+00:00",
   "Finish":"2018-10-01T00:00:00+00:00"
}

它的模型绑定到两个Date?属性,但是值是相同的日期,但是时间是1am。

为什么会这样?似乎只有在“ +00:00”出现时才这样做,所以我猜测这代表格林威治标准时间,服务器当前在夏季为+1。

1 个答案:

答案 0 :(得分:0)

我基本上使用了这个答案... https://stackoverflow.com/a/38276403/221683

此自定义格式化程序在日期字符串中不包含时区。

public class DateTimeConverter : DateTimeConverterBase
{
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
    {
        throw new NotImplementedException();
    }

    public override void WriteJson(JsonWriter writer, object value, Newtonsoft.Json.JsonSerializer serializer)
    {
        writer.WriteValue(((DateTime) value).ToString("yyyy-MM-ddTHH:mm:ss"));
    }
}

var serializedItem = JsonConvert.SerializeObject(item, new DateTimeConverter());