我正在迁移一个Web API从。NET Core 2.2到3.0,并希望使用新的System.文本。json
.当使用Newtonsoft
时,我能够使用下面的代码格式化DateTime
。我怎样才能完成同样的任务?
.AddJsonOptions(options =>
{
options.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc;
options.SerializerSettings.DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ssZ";
});
这是asp的垃圾箱火灾。net核心日期序列化/反序列化可能更容易理解,当您看到转储程序的日期火灾时。Parse()和日期。ParseExact()。我们在javascript之间传递日期,所以我们不想被格式化。我们只想在UTC的DateTime和ISO 8601之间透明地序列化和反序列化。这不是默认设置,没有配置选项,解决方案如此时髦和脆弱,真是令人尴尬。这是目前对我有效的,基于D.English的写作答案和阅读链接答案。。。
// in Startup.cs ConfigureServices()
services.AddMvc().AddJsonOptions(options =>
{
options.JsonSerializerOptions.Converters.Add(new UtcDateTimeConverter());
});
public class UtcDateTimeConverter : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
Debug.Assert(typeToConvert == typeof(DateTime));
return DateTime.Parse(reader.GetString(), null, System.Globalization.DateTimeStyles.RoundtripKind);
}
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString("yyyy-MM-ddTHH:mm:ss.fffZ", System.Globalization.CultureInfo.InvariantCulture));
}
}
迁移到Core3时,我不得不更换系统。文本Json再次使用Newtonsoft的方法是:
services.AddControllers().AddNewtonsoftJson();
但我在Angular应用程序中遇到了与UTC日期相同的问题,我必须添加此项以获取UTC中的日期:
services.AddControllers().AddNewtonsoftJson(
options => options.SerializerSettings.DateTimeZoneHandling = DateTimeZoneHandling.Utc);
在你的情况下,你应该能够做到这一点:
services.AddControllers().AddNewtonsoftJson(options =>
{
options.SerializerSettings.DateTimeZoneHandling = Newtonsoft.Json.DateTimeZoneHandling.Utc;
options.SerializerSettings.DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ssZ";
});
这是有效的,我希望它能帮助。。。
用自定义格式化程序解决。谢谢Panagiotis的建议。
public class DateTimeConverter : JsonConverter<DateTime>
{
public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
Debug.Assert(typeToConvert == typeof(DateTime));
return DateTime.Parse(reader.GetString());
}
public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToUniversalTime().ToString("yyyy'-'MM'-'dd'T'HH':'mm':'ssZ"));
}
}
// in the ConfigureServices()
services.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.Converters.Add(new DateTimeConverter());
});
问题内容: 但是,我需要从System Groovy脚本读取文件,因此使用Text-finder或Groovy PostBuild插件的解决方案将不起作用。 如何从系统Groovy脚本获取工作区路径?我尝试了以下方法: 谢谢! 问题答案: 每个构建都有一个 工作区 ,因此您需要首先找到所需的项目。(在詹金斯中,术语“工作”和“项目”在API中也是可以互换使用的。) 之后,您可以交叉手指,只需调用已
这只是我给tkinter文本输入框在pyplay中的一次尝试。我很确定它不会正常工作,但决定无论如何都要试一试,因为我没有什么可失去的。tkinter屏幕不显示,直到你退出pyplay。所以,我不是问是否有人知道如何修复代码,而是问是否有人知道在pyplay中创建文本框的最简单方法。我知道有一个文本输入类模块可以导入。如果你认为这是最简单的方法,那么你能告诉我吗?如果没有,请告诉我你认为最简单的方
问题内容: 我的页面中有一个表格,我使用colgroups以相同的方式设置此列中的所有单元格的格式,对背景颜色和所有颜色均适用。但似乎无法弄清为什么文本对齐中心不起作用。它不会使文本居中对齐。 例: CSS: 问题答案: 只有有限的CSS属性集适用于column,而不是其中之一。 有关这种情况的说明,请参见“为什么只有四个属性应用于表列的奥秘”。 在您的简单示例中,最简单的解决方法是添加以下规则:
问题内容: 我将使用带有一些数据的本地JSON文件。我的问题是,存储文件的最佳/正确方式在哪里?我应该如何访问它及其内容? 我之前通过http处理过json,但没有本地处理过。 问题答案: 有很多方法 您可以将JSON文件存储在资产文件夹中,并按如下方式读取它们-http://codingdict.com/questions/88307 对于基本的JSON解析,Android的内置JSONObje
本文向大家介绍在python中使用NLTK标记文本,包括了在python中使用NLTK标记文本的使用技巧和注意事项,需要的朋友参考一下 给定一个字符序列和一个定义的文档单元,令牌化就是将其切成碎片(称为令牌)的任务,也许同时丢掉某些字符(例如标点符号)。在nltk和python的上下文中,这仅仅是将每个标记放入列表的过程,因此我们可以遍历一个标记,而不是一次遍历每个字母。 例如,给定输入字符串-
我的mongoDB中有这种数据 这里假设我做一个查询 这给了我她的结果,但我有名字“nna”或名字“Ana”或名字“anna”或任何其他组合。那么,如何使用Mongoose获取MongoDB中字符串的最接近值呢