Преобразование даты в секундах в формат 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); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д