Сервер отдаёт дату вот в таком формате: 2015-04-24T07:00:51Z. Мне нужно узнать, не старше ли эта дата, например, трёх дней. Код ниже, естественно, не работает. Вероятно, дело в CultureInfo, но как мне тогда привести всё к общему знаменателю (формат выдачи сервером)? Или проблема в ином?
if ( (DateTime.UtcNow - stuff["query"]["users"][0]["registration"]).TotalDays < 3 )
Заране благодарен за помощь.
Используйте Json.Net для работы, он вам сам сконвертирует в дату.
var source = "{\"batchcomplete\":\"\",\"query\":{\"users\":[{\"userid\":24920566,\"name\":\"Example\",\"regist" +
"ration\":\"2015-04-24T07:00:51Z\"}]}}";
var data = JsonConvert.DeserializeObject<Abc>(source);
data.Dump();
data.Query.Users[0].Registration.Dump();
Вспомогательные классы создал сервисом:
public partial class Abc
{
[JsonProperty("batchcomplete")]
public string Batchcomplete { get; set; }
[JsonProperty("query")]
public Query Query { get; set; }
}
public partial class Query
{
[JsonProperty("users")]
public User[] Users { get; set; }
}
public partial class User
{
[JsonProperty("userid")]
public long Userid { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("registration")]
public DateTimeOffset Registration { get; set; }
}
Вывод linqpad:
Библиотека Json.Net умеет распознавать даты разных форматов, также можно написать собственные парсеры, например вот или посмотрите на en so.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости