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);

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

  • 相关阅读:
    Linux中的文件压缩,打包和备份命令
    Codeforces Round #219 (Div. 2) E. Watching Fireworks is Fun
    [一位菜鸟的COCOS-2D编程之路]COCOS2D中得动作,特效和动画
    软件工程 之 需求分析
    IOS开发之UINavigationController详解
    C++——友元函数和友元类
    拷贝构造函数
    CMake高级用法
    ros-slam的链接
    imu滤波
  • 原文地址:https://www.cnblogs.com/luciusliang/p/11617432.html
Copyright © 2011-2022 走看看