asp.net-core-3.1 - System.Text.Json ASP.NET Core 3.1 的特定日期时间格式
问题描述
我有一个带格式的日期时间输入,dd/MM/yyyy
但是当我调试到控制器时日期时间是错误的
我已经尝试过像这样制作自定义转换器:
public class DateTimeConverter : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
if (reader.TokenType == JsonTokenType.String)
{
var s = reader.GetString();
if (DateTime.TryParseExact(s, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dt))
{
return dt;
}
}
return reader.GetDateTime();
}
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
{
writer.WriteStringValue(value);
}
}
public class DateTimeNullableConverter : JsonConverter<DateTime?>
{
public override DateTime? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var s = reader.GetString();
if (DateTime.TryParseExact(s, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out DateTime dt))
{
return dt;
}
return null;
}
public override void Write(Utf8JsonWriter writer, DateTime? value, JsonSerializerOptions options)
{
if (value != null)
{
writer.WriteStringValue(value.Value);
}
else
{
writer.WriteStringValue(string.Empty);
}
}
}
并注册它Startup.cs
喜欢这个
services.AddControllersWithViews()
.AddRazorRuntimeCompilation()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
options.JsonSerializerOptions.Converters.Add(new DateTimeConverter());
options.JsonSerializerOptions.Converters.Add(new DateTimeNullableConverter());
options.JsonSerializerOptions.PropertyNamingPolicy = null;
});
仍然没有结果。
但是,如果我将计算机日期格式更改dd/MM/yyyy
为代码就可以了
有什么问题吗?提前致谢
解决方案
推荐阅读
- .net - Web 应用程序在团队应用程序工作室中抛出 IDX21323
- flutter - 如何禁用 Flutter/Dart 实验?
- python - 在 Keras 中进行的自定义回调以停止“过度拟合和过度训练”,这需要太多时间来节省模型和重量
- python - Matplotlib - 3D 图中的 2D 曲线
- wsl-2 - 如何在没有互联网连接的情况下在 WSL2 上手动安装网络工具?
- angular - Mat Table 在其自己的选项卡下以角度动态构建
- gitlab - Gitlab CI 可以触发其他项目流水线阶段吗?
- react-native - react native的核心代码重构成功了吗?
- java - 如何检查两个流是否不相交?
- sql-server - 如果链接服务器关闭 SQL Server 中的查询会发生什么情况?