gpt4 book ai didi

c# - Json.net 不正确的日期时间格式

转载 作者:太空宇宙 更新时间:2023-11-03 12:42:23 25 4
gpt4 key购买 nike

我开始使用 Json.net 来解析带有日期值的 Json 字符串。一切顺利,约会安全。到目前为止,我一直无法将 JValue 转换为 .NET DateTime,即使使用 DateTime.Parse 方法也是如此,因为 Json.NET 似乎将日期解析为一种不寻常的格式,如下所示

"Wed Jul 20 16:00:00 CEST 2016"

我设法使用正则表达式重新格式化和解析日期,但为了将来的使用,我想学习正确使用 Json.net 而不是重新发明轮子。

JSON字符串如下

{
"totalCount": 5,
"avis": [{
"idDossier": 422271,
"typeDocDCE": 1,
"dcevisible": 0,
"organisme": "OPAC du Rhône",
"idOrganisme": 5687,
"reference": "16S0012",
"idTypeProcedure": 68,
"typeProcedure": "Procédure adaptée",
"idTypeMarche": 1,
"typeMarche": "Travaux",
"libelle": "CHAMBOST ALLIERES - Les Cités - Construction de 16 logements individuels et intermédiaires",
"dateRemiseOffre": "20/07/2016 00:00",
"dateRemiseCandidature": "",
"datePublication": "23/06/2016 17:48",
"dateLimite": "20/07/2016 16:00",
"idFichierRC": 0,
"rectificatifs": true,
"questions": true,
"mps": false
}, {
"idDossier": 422402,
"typeDocDCE": 6,
"dcevisible": 0,
"organisme": "OPAC du Rhône",
"idOrganisme": 5687,
"reference": "16S0010",
"idTypeProcedure": 2,
"typeProcedure": "Appel d'offres restreint",
"idTypeMarche": 2,
"typeMarche": "Services",
"libelle": "Maintenance des installations de chauffage et ECS avec intéressement et prestations de réparation sur le patrimoine de l’Opac du Rhône - Lot n°3 : chaufferies et installations de chauffage collectif et électriques des agences de Thizy et L’Arbresle",
"dateRemiseOffre": "",
"dateRemiseCandidature": "25/07/2016 00:00",
"datePublication": "27/06/2016 11:43",
"dateLimite": "25/07/2016 16:00",
"idFichierRC": 0,
"rectificatifs": false,
"questions": false,
"mps": false
}]

这是我的C#代码

            string JsonString = new WebClient().DownloadString(URL);
JsonSerializerSettings microsoftDateFormatSettings = new JsonSerializerSettings
{
DateFormatHandling = DateFormatHandling.MicrosoftDateFormat,
DateTimeZoneHandling = DateTimeZoneHandling.Local
};
dynamic elements = JsonConvert.DeserializeObject(JsonString, microsoftDateFormatSettings);
for (int i = 0; i < int.Parse(elements.totalCount.ToString()) ; i++)
{
idDossier = elements.avis[i].idDossier;
refs = elements.avis[i].
PublicationDate = elements.avis[i].datePublication;
Deadline = elements.avis[i].dateLimite;

我做错了什么?

提前致谢

最佳答案

您可以在JsonSerializerSettings中指定DateFormatString

var json = @"{""dateRemiseCandidature"": ""25/07/2016 00:00""}";
var settings = new JsonSerializerSettings
{
DateFormatString = "dd/MM/yyyy hh:mm"
};
var result = JsonConvert.DeserializeObject<SomeClass>(json, settings);

//////

class SomeClass
{
public DateTime dateRemiseCandidature { get; set; }
}

关于c# - Json.net 不正确的日期时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38463216/

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