abp默认是不使用mvc的时间格式,所以直接在AddMvc修改DateFormatString是不会生效的。需要先启用mvc时间格式。Configuration.Modules.AbpAspNetCore().UseMvcDateTimeFormatForAppServices = true;
可以在任意一个项目的module的PreInitialize()方法中配置,不过还是推荐在Host项目或者MVC的module中配置,就是startup设置的DateFormatString在哪个项目就在哪个项目的module中配置。
这个更新是abp 3.8.1之后加的,之前的版本还是得用自定义ContractResolver的丑陋办法
show code
xxWebHostModule.cs
public override void PreInitialize() { Configuration.Modules.AbpWebCommon().MultiTenancy.DomainFormat = _appConfiguration["App:ServerRootAddress"] ?? "http://localhost:22742/"; Configuration.Modules.AspNetZero().LicenseCode = _appConfiguration["AbpZeroLicenseCode"]; Configuration.Modules.AbpAspNetCore().UseMvcDateTimeFormatForAppServices = true;//就是这句,使用mvc时间格式 }
需要using Abp.AspNetCore.Configuration;
然后是startup.cs
ConfigureServices()方法里第一句
//MVC services.AddMvc(options => { options.Filters.Add(new CorsAuthorizationFilterFactory(DefaultCorsPolicyName)); }) .AddJsonOptions(options => options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss zz") .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
重点是.AddJsonOptions(options => options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss zz")
然后随便找个controller写个获取时间的方法
public class DateLocal { public DateTimeOffset DateTimeOffset { get; set; } public DateTime DateTime { get; set; } public DateTimeOffset Local { get; set; } }
[HttpGet] public DateLocal GetLocalTime() { return new DateLocal { DateTimeOffset = DateTimeOffset.Now, DateTime = DateTime.Now, Local = DateTimeOffset.Now.ToLocalTime(), }; }
生效
原文地址:https://www.cnblogs.com/turingguo/p/10653976.html
时间: 2024-10-05 05:50:00