zoukankan      html  css  js  c++  java
  • Net core 2.x 升级 3.0 使用自带 System.Text.Json 时区 踩坑经历

    .Net Core 3.0 更新的东西很多,这里就不多做解释了,官方和博园大佬写得很详细

    关于 Net Core 时区问题,在 2.1 版本的时候,因为用的是 Newtonsoft.Json,配置比较方便

    AddJsonOptions(opt => {
                    opt.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Local;
                })

    但是用 System.Text.Json 就没那么方便了,翻了半天,只找到个 JsonConverts ,自己写了一个转换器去做转时区

    using System.Text.Json.Serialization;
    using System.Text.Json;
    
    namespace LuciusLiang.Pwanshop.Api
    {
        public class JsonDateTimeConvert : JsonConverter<DateTime>
        {
            public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
            {
                var paramString = reader.GetString();
    
                var localDateTime = Convert.ToDateTime(paramString);
    
                return localDateTime;
            }
    
            public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
            {
                writer.WriteStringValue(value.ToString("yyyy-MM-dd HH:mm:ss"));
            }
        }
    }

    然后在 StartUp 中添加进 JsonOptions

                services.AddControllers(opt =>
                {
                    opt.InputFormatters.Add(new TextPlainInputFormatter());
                }).AddJsonOptions(opt =>
                {
                    opt.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
                    opt.JsonSerializerOptions.Converters.Add(new JsonDateTimeConvert());
    
                }).SetCompatibilityVersion(CompatibilityVersion.Version_3_0);

    因为自己做边界测试发现的这个问题,所以也没有全面测试过是否存在其他问题,如果有发现请留言,感谢。

  • 相关阅读:
    冒泡排序与选择排序
    SVN-cheanup反复操作失败的问题。
    js区分汉字和字符,校验长度
    maven的安装与使用
    java获取登陆用户的IP地址
    kafka创建topics 错误: 找不到或无法加载主类 FilesJavajdk1.7.0_80lib;C:Program
    SOAPwebservice 与Restfull webservice之间的区别
    CAD数据导入Arcgis10.1的依赖关系
    wpf之StackPanel、WrapPanel、WrapPanel之间的关系
    浅谈修饰符
  • 原文地址:https://www.cnblogs.com/luciusliang/p/11617432.html
Copyright © 2011-2022 走看看