zoukankan      html  css  js  c++  java
  • Asp.net Core 3.0中关于DateTime格式化的方法

    不特别设置的话,对于DateTime类型默认格式化为带T的字符串,如"yyyy-MM-ddTHH:mm:ss"。

    如果需要自定义这个格式,需要在Startup类的ConfigureServices方法中指定

                //配置响应格式
                services.AddJsonOptions(options =>
                {
                    options.JsonSerializerOptions.Converters.Add(new DateTimeConverter());
                    options.JsonSerializerOptions.Converters.Add(new DateTimeNullConverter());
                }).SetCompatibilityVersion(CompatibilityVersion.Version_3_0);

    新建格式化处理类

        public class DateTimeNullConverter : JsonConverter<DateTime?>
        {
            public override DateTime? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
                => string.IsNullOrEmpty(reader.GetString()) ? default(DateTime?) : DateTime.Parse(reader.GetString());
    
            public override void Write(Utf8JsonWriter writer, DateTime? value, JsonSerializerOptions options)
                => writer.WriteStringValue(value?.ToString("yyyy-MM-dd HH:mm"));
        }
    
        public class DateTimeConverter : JsonConverter<DateTime>
        {
            public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
                => DateTime.Parse(reader.GetString());
    
            public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
                => writer.WriteStringValue(value.ToString("yyyy-MM-dd HH:mm"));
        }
  • 相关阅读:
    vue Bus总线
    一百个灯泡排成一排,第一轮将所有灯泡打开;
    大数相乘 java
    最长公共子子串 java
    剑指XX游戏(六)
    C++面试出现频率最高的30道题目
    C++ 容器及选用总结
    C++中的各种容器实现原理
    求1000阶乘中最后0的个数
    n个骰子可能的点数和
  • 原文地址:https://www.cnblogs.com/xbzhu/p/13700680.html
Copyright © 2011-2022 走看看