Сравнение даты, полученной из json

214
28 августа 2018, 02:00

Сервер отдаёт дату вот в таком формате: 2015-04-24T07:00:51Z. Мне нужно узнать, не старше ли эта дата, например, трёх дней. Код ниже, естественно, не работает. Вероятно, дело в CultureInfo, но как мне тогда привести всё к общему знаменателю (формат выдачи сервером)? Или проблема в ином?

if ( (DateTime.UtcNow - stuff["query"]["users"][0]["registration"]).TotalDays < 3 )

Заране благодарен за помощь.

Answer 1

Используйте 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.

READ ALSO
Как отсортировать точки

Как отсортировать точки

Я хочу сделать так, чтобы можно было отсортировать двумерные точкиТо есть объекты, у которых есть 2 числовых значения

186
c# асинхронное выполнение методов

c# асинхронное выполнение методов

Мне нужно постоянно пинговать около 400 машин и при это м чтобы другой функционал программы работалПишу так :

190
Внутренний EventBus для AspNetCore 2.0

Внутренний EventBus для AspNetCore 2.0

Здравсвуйте, нужно реализовать внутрениий EventBus (не микросервисное взаимодействие на основе например RabbitMq)Все издатели пишут на общую шину...

172
Как сократить долгую проверку на каждую букву C#

Как сократить долгую проверку на каждую букву C#

Нужно сделать проверку что бы введенное слово не содержало английских символов (f,a,g)Но простым, длинным str

168