【发布时间】:2019-12-06 11:48:05
【问题描述】:
我有以下 JSON 请求...来自第三方。
{
"show_time": "Tues 28/08/2018 18:00",
"end_time": "28/08/2018 07:55:00 PM",
}
而且,在 DTO 类中,我有以下日期时间转换器。
[Required]
[JsonProperty(PropertyName = "show_time")]
[JsonConverter(typeof(DateTimeFormatConverter), "ddd dd/MM/yyyy HH:mm")]
public DateTime ShowTime { get; set; }
还有,自定义 JsonConverter 类。
public class DateTimeFormatConverter : IsoDateTimeConverter
{
public DateTimeFormatConverter(string format)
{
DateTimeFormat = format;
}
}
但是我收到了这个错误...
FormatException: String 'Tues 28/08/2018 18:00' was not recognized as a valid DateTime.
System.DateTimeParse.ParseExact(ReadOnlySpan<char> s, ReadOnlySpan<char> format, DateTimeFormatInfo dtfi, DateTimeStyles style)
我该怎么办,其他缩写日期按预期工作(例如周一,周三)。
参考。
我的日期时间格式“ddd dd/MM/yyyy HH:mm”的来源
https://www.c-sharpcorner.com/blogs/date-and-time-format-in-c-sharp-programming1
【问题讨论】:
-
Tues不是正常的缩写 - 它应该是Tue。 -
如果你不能改变序列化部分,就不要考虑工作日(第一)部分(反正你不需要)。
-
@John 但它是参考。我的问题中的链接表明这是可能的。而这些数据来自第三方。有什么办法可以解决吗?
-
鉴于这不是官方文档,我怀疑这是一个错字。 Official docs。就个人而言,我会创建一个转换器,将第一部分拆分出来,只使用
dd/MM/yyyy HH:mm部分。 -
Here is the IsoDateTimeConverter source code 作为起点。我可能只是在空间上分成 2 个字符串,然后忽略前半部分。
标签: c# .net-core json.net asp.net-core-webapi