1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-06-12 02:16:23 +00:00

Fixed datetime converter considering dates over 2033 to be in the wrong format

This commit is contained in:
Jan Korf 2022-05-01 13:57:06 +02:00
parent 2d470d18e2
commit 7e4a607391

View File

@ -1,5 +1,4 @@
using Newtonsoft.Json; using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
@ -34,11 +33,11 @@ namespace CryptoExchange.Net.Converters
var longValue = (long)reader.Value; var longValue = (long)reader.Value;
if (longValue == 0) if (longValue == 0)
return objectType == typeof(DateTime) ? default(DateTime): null; return objectType == typeof(DateTime) ? default(DateTime): null;
if (longValue < 1999999999) if (longValue < 19999999999)
return ConvertFromSeconds(longValue); return ConvertFromSeconds(longValue);
if (longValue < 1999999999999) if (longValue < 19999999999999)
return ConvertFromMilliseconds(longValue); return ConvertFromMilliseconds(longValue);
if (longValue < 1999999999999999) if (longValue < 19999999999999999)
return ConvertFromMicroseconds(longValue); return ConvertFromMicroseconds(longValue);
return ConvertFromNanoseconds(longValue); return ConvertFromNanoseconds(longValue);
@ -46,7 +45,7 @@ namespace CryptoExchange.Net.Converters
else if (reader.TokenType is JsonToken.Float) else if (reader.TokenType is JsonToken.Float)
{ {
var doubleValue = (double)reader.Value; var doubleValue = (double)reader.Value;
if (doubleValue < 1999999999) if (doubleValue < 19999999999)
return ConvertFromSeconds(doubleValue); return ConvertFromSeconds(doubleValue);
return ConvertFromMilliseconds(doubleValue); return ConvertFromMilliseconds(doubleValue);
@ -86,11 +85,11 @@ namespace CryptoExchange.Net.Converters
if (double.TryParse(stringValue, NumberStyles.Float, CultureInfo.InvariantCulture, out var doubleValue)) if (double.TryParse(stringValue, NumberStyles.Float, CultureInfo.InvariantCulture, out var doubleValue))
{ {
// Parse 1637745563.000 format // Parse 1637745563.000 format
if (doubleValue < 1999999999) if (doubleValue < 19999999999)
return ConvertFromSeconds(doubleValue); return ConvertFromSeconds(doubleValue);
if (doubleValue < 1999999999999) if (doubleValue < 19999999999999)
return ConvertFromMilliseconds((long)doubleValue); return ConvertFromMilliseconds((long)doubleValue);
if (doubleValue < 1999999999999999) if (doubleValue < 19999999999999999)
return ConvertFromMicroseconds((long)doubleValue); return ConvertFromMicroseconds((long)doubleValue);
return ConvertFromNanoseconds((long)doubleValue); return ConvertFromNanoseconds((long)doubleValue);