public override void WriteJson(JsonWriter writer, DateTimeOffset value, JsonSerializer serializer) { DateTimeOffsetUnixConverterOptions options = GetOptions(serializer); long timeValue = GetUnixTime(value, options); JToken jt = JToken.FromObject(timeValue); jt.WriteTo(writer); }
protected DateTimeOffset GetTime(long unixTime, DateTimeOffsetUnixConverterOptions options) { long seconds = options.HasFlag(DateTimeOffsetUnixConverterOptions.MilliSecondsNotSeconds) ? unixTime / 1000 : unixTime; return(DateTimeOffset.FromUnixTimeSeconds(seconds)); }
protected long GetUnixTime(DateTimeOffset time, DateTimeOffsetUnixConverterOptions options) { long seconds = time.ToUnixTimeSeconds(); long timeValue = options.HasFlag(DateTimeOffsetUnixConverterOptions.MilliSecondsNotSeconds) ? seconds * 1000 : seconds; return(timeValue); }
public override void WriteJson(JsonWriter writer, DateTimeOffset?value, JsonSerializer serializer) { DateTimeOffsetUnixConverterOptions options = GetOptions(serializer); if (value is null) { writer.WriteNull(); } else { long timeValue = GetUnixTime(value.Value, options); JToken jt = JToken.FromObject(timeValue); jt.WriteTo(writer); } }
public override DateTimeOffset ReadJson( JsonReader reader, Type objectType, DateTimeOffset existingValue, bool hasExistingValue, JsonSerializer serializer) { if (objectType != typeof(DateTimeOffset)) { throw new NotSupportedException($"The type {objectType} is not supported."); } if (reader.Value is null) { throw new NullReferenceException("Null received when type is non-nullable DateTime."); } DateTimeOffsetUnixConverterOptions options = GetOptions(serializer); long timeValue = long.Parse(reader.Value.ToString()); return(GetTime(timeValue, options)); }
public DateTimeOffsetNullableUnixConverter(DateTimeOffsetUnixConverterOptions activeOptions) : base( activeOptions) { }
public DateTimeOffsetGenericUnixConverter(DateTimeOffsetUnixConverterOptions activeOptions) : base( activeOptions) { }