diff --git a/src/Shentun.Peis.HttpApi.Host/Filter/JsonTimeSpanConverter.cs b/src/Shentun.Peis.HttpApi.Host/Filter/JsonTimeSpanConverter.cs
new file mode 100644
index 0000000..900df86
--- /dev/null
+++ b/src/Shentun.Peis.HttpApi.Host/Filter/JsonTimeSpanConverter.cs
@@ -0,0 +1,24 @@
+using System.Text.Json;
+using System;
+using System.Text.Json.Serialization;
+
+namespace Shentun.Peis.Filter
+{
+ ///
+ /// 转换时间
+ ///
+ public class JsonTimeSpanConverter : JsonConverter
+ {
+ public override TimeSpan Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
+ {
+ var value = reader.GetString();
+ return TimeSpan.TryParse(value, out var timeSpan) ? timeSpan : new TimeSpan();
+ }
+
+ public override void Write(Utf8JsonWriter writer, TimeSpan value, JsonSerializerOptions options)
+ {
+ var timeSpanString = value.ToString();
+ writer.WriteStringValue(timeSpanString);
+ }
+ }
+}
diff --git a/src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs b/src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs
index 4a698ce..aaf9bdb 100644
--- a/src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs
+++ b/src/Shentun.Peis.HttpApi.Host/PeisHttpApiHostModule.cs
@@ -52,6 +52,9 @@ using Microsoft.AspNetCore.Diagnostics;
using Microsoft.AspNetCore.Http;
using Shentun.Peis.Filter;
using Shentun.Peis.VirtualPath;
+using System.Text.Encodings.Web;
+using System.Text.Unicode;
+using Volo.Abp.Json;
namespace Shentun.Peis;
[DependsOn(
@@ -104,7 +107,7 @@ public class PeisHttpApiHostModule : AbpModule
ConfigureCors(context, configuration);
ConfigureSwaggerServices(context, configuration);
-
+ ConfigureJsonOptions(); //全局配置api返回值中的日期默认格式
//密码策略配置
context.Services.Configure(opt =>
@@ -178,6 +181,31 @@ public class PeisHttpApiHostModule : AbpModule
}
+ ///
+ /// 全局转换日期格式
+ ///
+ private void ConfigureJsonOptions()
+ {
+ //context.Services.AddControllers().AddJsonOptions(options =>
+ //{
+ // options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
+ // options.JsonSerializerOptions.PropertyNamingPolicy = null;
+ //});
+ Configure(x =>
+ {
+ x.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
+ x.JsonSerializerOptions.PropertyNamingPolicy = null;
+ x.JsonSerializerOptions.Converters.Add(new JsonTimeSpanConverter());
+ });
+
+ Configure(x =>
+ {
+ x.DefaultDateTimeFormat = "yyyy-MM-dd HH:mm:ss";
+ });
+ }
+
+
+
private void ConfigureAuthentication(ServiceConfigurationContext context)
{
context.Services.ForwardIdentityAuthenticationForBearer(OpenIddictValidationAspNetCoreDefaults.AuthenticationScheme);