Преобразование даты в секундах в формат DateTime - C#

Узнай цену своей работы

Формулировка задачи:

Получаю дату через JSON в формате секунд
Листинг программы
  1. {"time":1436862901}
Листинг программы
  1. [JsonProperty("time")]
  2. public DateTime Date { get; set; }
Почему сразу не воспринимается как дата, и как быстрее всего сделать чтобы воспринималось? Если пишу int или string то все ок, но мне нужно либо сразу получать датой либо перевести в дату.

Решение задачи: «Преобразование даты в секундах в формат DateTime»

textual
Листинг программы
  1. class UnixTimestampConverter : JsonConverter
  2. {
  3.     static readonly DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
  4.  
  5.     public override bool CanConvert(Type objectType)
  6.     {
  7.         return typeof(DateTime).IsAssignableFrom(objectType);
  8.     }
  9.  
  10.     public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
  11.     {
  12.         int timestamp = serializer.Deserialize<int>(reader);
  13.         return unixEpoch.AddSeconds(timestamp);
  14.     }
  15.  
  16.     public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
  17.     {
  18.         var date = (DateTime)value;
  19.         var utcDate = date.ToUniversalTime();
  20.         var timestamp = (int)(utcDate - unixEpoch).TotalSeconds;
  21.  
  22.         serializer.Serialize(writer, timestamp);
  23.     }
  24. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут