Asp.Net MVC Web API强制在dateTime上进行UTC转换

问题描述

在我的API(ASP.Net,.NET Framework 4.5)上,我需要以以下格式返回日期时间:2020-06-19T13:30:44 + 00:00

所以我创建了一个新的转换器

public class JsonDateFormatConverter : IsoDateTimeConverter
{
    public JsonDateFormatConverter(string format)
    {
        DateTimeFormat = format;
    }
}

装饰我的模型:

    [JsonConverter(typeof(JsonDateFormatConverter),"yyyy-MM-ddTHH:mm:sszzz")]
    public DateTime? StartDate{ get; set; }

但是不是返回例如“ 2020-03-07T00:00:00 + 01:00”的即时通讯,而是得到“ 2020-03-06T23:00:00Z”

因此,似乎所有内容都已在序列化为JSON之前转换为UTC。

我尝试在WebApiConfing中进行设置

config.Formatters.JsonFormatter.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local;

但这没有帮助。

还尝试将dateTime类型设置为:

    [JsonConverter(typeof(JsonDateFormatConverter),"yyyy-MM-ddTHH:mm:sszzz")]
    public DateTime? StartDate
    { 
        get => startDate;
        set 
        {
            if (value != null)
                startDate= DateTime.SpecifyKind(value.Value,DateTimeKind.Local);
            else
                startDate= value;
        }
    }

    private DateTime? startDate;

也没有帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...