加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-4 – WebApi Json.NET自定义日期处理

发布时间:2020-12-15 22:51:25 所属栏目:asp.Net 来源:网络整理
导读:我全球明确地配置了我的MVC4应用程序来使用 JSON.NET序列化程序.我知道在序列化日期时可以选择使用ISO标准日期或旧的Microsoft日期格式. 但是如何输出我自己的customTime格式的字符串,如:“dd / MM / yyyy hh:mm”. 当插入Json.NET作为默认序列化程序时,我
我全球明确地配置了我的MVC4应用程序来使用 JSON.NET序列化程序.我知道在序列化日期时可以选择使用ISO标准日期或旧的Microsoft日期格式.

但是如何输出我自己的customTime格式的字符串,如:“dd / MM / yyyy hh:mm”.

当插入Json.NET作为默认序列化程序时,我可以在MVC3中执行此操作,但似乎无法在MVC4中执行此操作.

到目前为止在application_start我已经做了:

var settings =     GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings;            
        JsonSerializerSettings jSettings = new Newtonsoft.Json.JsonSerializerSettings()
        {
            Formatting = Formatting.Indented,DateTimeZoneHandling = DateTimeZoneHandling.Utc,};
        jSettings.Converters.Add(new MyDateTimeConvertor() );
        settings = jSettings;

和我试图暗示的自定义转换器是这样的:

public class MyDateTimeConvertor : DateTimeConverterBase
    {
        public override object ReadJson(JsonReader reader,Type objectType,object existingValue,JsonSerializer serializer)
        {
            return DateTime.Parse(reader.Value.ToString());
        }

        public override void WriteJson(JsonWriter writer,object value,JsonSerializer serializer)
        {
            writer.WriteValue(((DateTime)value).ToString("dd/MM/yyyy hh:mm"));
        }
    }

Anyhelp将不胜感激:)

解决方法

更改您的设置设置代码如下所示:
JsonMediaTypeFormatter jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter;
JsonSerializerSettings jSettings = new Newtonsoft.Json.JsonSerializerSettings()         
{
    Formatting = Formatting.Indented,DateTimeZoneHandling = DateTimeZoneHandling.Utc
};
jSettings.Converters.Add(new MyDateTimeConvertor());
jsonFormatter.SerializerSettings = jSettings;

在你的代码中,你只是改变局部变量值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读