作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 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");
}
}
}
关于c# - 将 JSON 日期序列化为 yyyy-MM-ddTHH :mm:ss:fffzzzz without colon in the timezone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43823889/
我正在使用 NewtonSoft.JSON 将我的对象序列化为 JSON。我有一个要求,日期时间格式必须为 2017-05-06T11:59:37:012-0500。我已经传递了我自己的日期时间格式,
我正在使用 NewtonSoft.JSON 将我的对象序列化为 JSON。我有一个要求,日期时间格式必须为 2017-05-06T11:59:37:012-0500。我已经传递了我自己的日期时间格式,
我是一名优秀的程序员,十分优秀!