😎 swagger 时间格式化以及本地化

This commit is contained in:
zuohuaijun 2025-04-01 15:14:38 +08:00
parent 900895e375
commit 4a24cc45c3
2 changed files with 22 additions and 2 deletions

View File

@ -82,7 +82,7 @@ public class SysLogVisService : IDynamicApiController, ITransient
// SqlServer 数据库,全局设置 IsWithNoLockQuery = true 时 Reportable 查询会报错
// 通过禁用当前上下文的全局设置 Nolock解决 Reportable 查询报错的问题
_db.CurrentConnectionConfig.MoreSettings.IsWithNoLockQuery = false;
var now = DateTime.Now;
var days = (now - now.AddYears(-1)).Days + 1;
var day365 = Enumerable.Range(0, days).Select(u => now.AddDays(-u)).ToList();

View File

@ -24,14 +24,17 @@ using Microsoft.Extensions.FileProviders;
using Microsoft.Extensions.Hosting;
using MQTTnet.AspNetCore;
using Newtonsoft.Json;
using Newtonsoft.Json.Converters;
using OnceMi.AspNetCore.OSS;
using RabbitMQ.Client;
using SixLabors.ImageSharp.Web.DependencyInjection;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.IO;
using System.Linq;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
using System.Threading.Tasks;
@ -96,7 +99,7 @@ public class Startup : AppStartup
{
setting.DateFormatHandling = DateFormatHandling.IsoDateFormat;
setting.DateTimeZoneHandling = DateTimeZoneHandling.Local;
// setting.Converters.AddDateTimeTypeConverters(localized: true); // 时间本地化
setting.Converters.AddDateTimeTypeConverters(localized: true); // 时间本地化
setting.DateFormatString = "yyyy-MM-dd HH:mm:ss"; // 时间格式化
setting.ReferenceLoopHandling = ReferenceLoopHandling.Ignore; // 忽略循环引用
// setting.ContractResolver = new CamelCasePropertyNamesContractResolver(); // 解决动态对象属性名大写
@ -105,6 +108,11 @@ public class Startup : AppStartup
// setting.MetadataPropertyHandling = MetadataPropertyHandling.Ignore; // 解决DateTimeOffset异常
// setting.DateParseHandling = DateParseHandling.None; // 解决DateTimeOffset异常
// setting.Converters.Add(new IsoDateTimeConverter { DateTimeStyles = DateTimeStyles.AssumeUniversal }); // 解决DateTimeOffset异常
setting.Converters.Add(new IsoDateTimeConverter
{
DateTimeFormat = "yyyy-MM-dd HH:mm:ss", // 时间格式
DateTimeStyles = DateTimeStyles.AssumeLocal | DateTimeStyles.AdjustToUniversal
}); // 解决DateTimeOffset异常
}
services.AddControllersWithViews()
@ -116,6 +124,7 @@ public class Startup : AppStartup
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All); // 禁止Unicode转码
options.JsonSerializerOptions.Converters.AddDateTimeTypeConverters("yyyy-MM-dd HH:mm:ss", localized: true); // 时间格式
});
// SqlSugar
@ -214,6 +223,17 @@ public class Startup : AppStartup
// 控制台logo
services.AddConsoleLogo();
// Swagger 时间格式化
services.AddSwaggerGen(u =>
{
u.MapType<DateTime>(() => new Microsoft.OpenApi.Models.OpenApiSchema
{
Type = "string",
Format = "date-time",
Example = new Microsoft.OpenApi.Any.OpenApiString(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"))
});
});
// 将IP地址数据库文件完全加载到内存提升查询速度以空间换时间内存将会增加60-70M
IpToolSettings.LoadInternationalDbToMemory = true;
// 设置默认查询器China和International