UTCDateTimeConverter.cs 1.1 KB

123456789101112131415161718192021222324252627282930
  1. using System;
  2. using Newtonsoft.Json;
  3. namespace EVCB_OCPP.Packet.Utilities
  4. {
  5. public class UTCDateTimeConverter : JsonConverter
  6. {
  7. public override bool CanConvert(Type objectType)
  8. {
  9. return objectType == typeof(DateTime);
  10. }
  11. public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
  12. {
  13. DateTime? timevalue = null;
  14. if (reader.Value != null)
  15. {
  16. DateTime date = ((DateTime)reader.Value).ToLocalTime();
  17. timevalue = new DateTime(date.Year, date.Month, date.Day, date.TimeOfDay.Hours, date.TimeOfDay.Minutes, date.TimeOfDay.Seconds, 000);
  18. }
  19. return timevalue;
  20. }
  21. public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
  22. {
  23. var date = (DateTime)value;
  24. string timevalue = date.ToUniversalTime().ToString("yyyy-MM-ddT") + date.ToUniversalTime().TimeOfDay.ToString(@"hh\:mm\:ss\.fff")+ "Z";
  25. writer.WriteValue(timevalue);
  26. }
  27. }
  28. }