最新版ABP 動態WebAPI 日期轉json帶T的解決方案| ABP DateTIme Json format

ABP動態webapi返回的json數據中,日期時間帶T還有毫秒數的問題,在以往的版本中可使用下面方法解決:web

在XXXAbpWebApiModule中加上下面的代碼:json

很老的很老的版本有效:

public override void Initialize() { api

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

}code

老版本有效:

public override void PostInitialize() { orm

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

}it

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

好像是寫到PostInitialize或者Initialize或者PreInitialize裏面,具體能夠逐一試試:io

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

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

相關文章
相關標籤/搜索