コード例 #1
0
        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);
        }
コード例 #2
0
        protected DateTimeOffset GetTime(long unixTime, DateTimeOffsetUnixConverterOptions options)
        {
            long seconds = options.HasFlag(DateTimeOffsetUnixConverterOptions.MilliSecondsNotSeconds)
                ? unixTime / 1000
                : unixTime;

            return(DateTimeOffset.FromUnixTimeSeconds(seconds));
        }
コード例 #3
0
        protected long GetUnixTime(DateTimeOffset time, DateTimeOffsetUnixConverterOptions options)
        {
            long seconds   = time.ToUnixTimeSeconds();
            long timeValue = options.HasFlag(DateTimeOffsetUnixConverterOptions.MilliSecondsNotSeconds)
                ? seconds * 1000
                : seconds;

            return(timeValue);
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
        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));
        }
コード例 #6
0
 public DateTimeOffsetNullableUnixConverter(DateTimeOffsetUnixConverterOptions activeOptions) : base(
         activeOptions)
 {
 }
コード例 #7
0
 public DateTimeOffsetGenericUnixConverter(DateTimeOffsetUnixConverterOptions activeOptions) : base(
         activeOptions)
 {
 }