zoukankan      html  css  js  c++  java
  • 最新版ABP 动态WebAPI 日期转json带T的解决方案| ABP DateTIme Json format

    ABP动态webapi返回的json数据中,日期时间带T还有毫秒数的问题,在以往的版本中可以使用下面方法解决:

    在XXXAbpWebApiModule中加上下面的代码:

    很老的很老的版本有效:

    public override void Initialize() {

      Configuration.Modules.AbpWebApi().HttpConfiguration.Formatters.JsonFormatter.SerializerSettings.DateFormatString= "yyyy-MM-dd HH:mm:ss";

    }

    老版本有效:

    public override void PostInitialize() {

      Configuration.Modules.AbpWebApi().HttpConfiguration.Formatters.JsonFormatter.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";

    }

    相对近期的版本有效,大概是v2.+:

    好像是写到PostInitialize或者Initialize或者PreInitialize里面,具体可以逐一试试:

    var converters = Configuration.Modules.AbpWebApi().HttpConfiguration.Formatters.JsonFormatter.SerializerSettings.Converters;

    foreach (var converter in converters) {

      if (converter is AbpDateTimeConverter) {

        var tmpConverter = converter as AbpDateTimeConverter;

        tmpConverter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";

      }

    }

    下面是最近的版本,大概是v3.x有效:

    public override void PostInitialize()
    {
      Configuration.Modules.AbpWebApi().HttpConfiguration.Formatters.JsonFormatter.SerializerSettings.ContractResolver = new MyAbpCamelCasePropertyNamesContractResolver();

    }

    public class MyAbpCamelCasePropertyNamesContractResolver : AbpCamelCasePropertyNamesContractResolver
    {
    protected override void ModifyProperty(MemberInfo member, JsonProperty property)
    {
    base.ModifyProperty(member, property);

    if (property.Converter is AbpDateTimeConverter converter)
    converter.DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
    }
    }

  • 相关阅读:
    002-Linux下防火墙相关命令操作
    001-网卡配置
    vs2012中自带IIS如何让其他电脑访问
    001-Mono for android在vs2012中发布设置
    小知识:utf-8和utf8mb4字符集
    Maven 模块化开发
    JUnit 单元测试
    解决8080端口占用问题
    (三)Tomcat服务器 -------JavaWeb的学习之路
    (一)走进JavaWeb的世界 -------JavaWeb的学习之路
  • 原文地址:https://www.cnblogs.com/hpnet/p/9471485.html
Copyright © 2011-2022 走看看