1
0
mirror of https://github.com/JKorf/CryptoExchange.Net synced 2025-06-10 17:36:19 +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.Linq;
using System;
using System.Diagnostics;
using System.Diagnostics.CodeAnalysis;
@ -34,11 +33,11 @@ namespace CryptoExchange.Net.Converters
var longValue = (long)reader.Value;
if (longValue == 0)
return objectType == typeof(DateTime) ? default(DateTime): null;
if (longValue < 1999999999)
if (longValue < 19999999999)
return ConvertFromSeconds(longValue);
if (longValue < 1999999999999)
if (longValue < 19999999999999)
return ConvertFromMilliseconds(longValue);
if (longValue < 1999999999999999)
if (longValue < 19999999999999999)
return ConvertFromMicroseconds(longValue);
return ConvertFromNanoseconds(longValue);
@ -46,7 +45,7 @@ namespace CryptoExchange.Net.Converters
else if (reader.TokenType is JsonToken.Float)
{
var doubleValue = (double)reader.Value;
if (doubleValue < 1999999999)
if (doubleValue < 19999999999)
return ConvertFromSeconds(doubleValue);
return ConvertFromMilliseconds(doubleValue);
@ -86,11 +85,11 @@ namespace CryptoExchange.Net.Converters
if (double.TryParse(stringValue, NumberStyles.Float, CultureInfo.InvariantCulture, out var doubleValue))
{
// Parse 1637745563.000 format
if (doubleValue < 1999999999)
if (doubleValue < 19999999999)
return ConvertFromSeconds(doubleValue);
if (doubleValue < 1999999999999)
if (doubleValue < 19999999999999)
return ConvertFromMilliseconds((long)doubleValue);
if (doubleValue < 1999999999999999)
if (doubleValue < 19999999999999999)
return ConvertFromMicroseconds((long)doubleValue);
return ConvertFromNanoseconds((long)doubleValue);