Преобразование даты в секундах в формат DateTime - C#
Формулировка задачи:
Получаю дату через JSON в формате секунд
Почему сразу не воспринимается как дата, и как быстрее всего сделать чтобы воспринималось?
Если пишу int или string то все ок, но мне нужно либо сразу получать датой либо перевести в дату.
Листинг программы
- {"time":1436862901}
Листинг программы
- [JsonProperty("time")]
- public DateTime Date { get; set; }
Решение задачи: «Преобразование даты в секундах в формат DateTime»
textual
Листинг программы
- class UnixTimestampConverter : JsonConverter
- {
- static readonly DateTime unixEpoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
- public override bool CanConvert(Type objectType)
- {
- return typeof(DateTime).IsAssignableFrom(objectType);
- }
- public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
- {
- int timestamp = serializer.Deserialize<int>(reader);
- return unixEpoch.AddSeconds(timestamp);
- }
- public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
- {
- var date = (DateTime)value;
- var utcDate = date.ToUniversalTime();
- var timestamp = (int)(utcDate - unixEpoch).TotalSeconds;
- serializer.Serialize(writer, timestamp);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д