gpt4 book ai didi

c# - 将 JSON 日期序列化为 yyyy-MM-ddTHH :mm:ss:fffzzzz without colon in the timezone

转载 作者:行者123 更新时间:2023-12-02 03:56:21 25 4
gpt4 key购买 nike

我正在使用 NewtonSoft.JSON 将我的对象序列化为 JSON。我有一个要求,日期时间格式必须为 2017-05-06T11:59:37:012-0500。我已经传递了我自己的日期时间格式,以使其传递为 2017-05-06T11:59:37:012-05:00。但是我不确定如何删除时区中的冒号。

以下是转换它的方法,但我需要一些可以直接使用字符串的东西。

var postDataSerialized = JsonConvert.SerializeObject(postData, new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-ddTHH:mm:ss:fffzzzz" });

最佳答案

不幸的是,仅仅通过调整一些参数值是无法避免这个冒号的。 IsoDateTimeConverter uses .Net DateTime 自定义格式功能,以及 colon is hardcoded对于 zzz 自定义格式。

因此,您必须自己实现所需的格式,这可以通过提供自定义 JsonConverter 来完成。自定义转换器可能如下所示:

public class NoColonIsoDateTimeConverter : IsoDateTimeConverter
{
public NoColonIsoDateTimeConverter()
{
DateTimeFormat = "yyyy'-'MM'-'ddTHH':'mm':'ss':'fffzzz";
}

public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
{
if (value is DateTime)
{
var dateTime = (DateTime)value;
var text = dateTime.ToString(DateTimeFormat);
text = text.Remove(text.Length - 3, 1);
writer.WriteValue(text);
}
else
{
throw new JsonSerializationException("Unexpected value when converting date. Expected DateTime");
}
}
}

演示:https://dotnetfiddle.net/79AuZs

关于c# - 将 JSON 日期序列化为 yyyy-MM-ddTHH :mm:ss:fffzzzz without colon in the timezone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43823889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com