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";
    }
    }

  • 相关阅读:
    利用 .NET Framework 命令行工具
    和AI机器人Alice的一段聊天记录
    WINDOWS自启动程序的10大隐身之所
    开放式开发/开源项目TimeDog[C#WindowsApp]
    Microsoft月度中文速递
    新安装的VS2003出现了一个问题不能新建项目!
    实例构造器和类型构造器的一些比较
    C++ 模板里面的typename
    vim 折叠的用法
    Redis3:持久化
  • 原文地址:https://www.cnblogs.com/hpnet/p/9471485.html
Copyright © 2011-2022 走看看