| @@ -2,12 +2,13 @@ | |||||
| namespace Discord | namespace Discord | ||||
| { | { | ||||
| //Source: https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/DateTimeOffset.cs | |||||
| internal static class DateTimeUtils | internal static class DateTimeUtils | ||||
| { | { | ||||
| #if !NETSTANDARD1_3 | #if !NETSTANDARD1_3 | ||||
| //https://github.com/dotnet/coreclr/blob/master/src/mscorlib/src/System/DateTimeOffset.cs | |||||
| private const long UnixEpochTicks = 621355968000000000; | |||||
| private const long UnixEpochSeconds = 62135596800; | |||||
| private const long UnixEpochTicks = 621_355_968_000_000_000; | |||||
| private const long UnixEpochSeconds = 62_135_596_800; | |||||
| private const long UnixEpochMilliseconds = 62_135_596_800_000; | |||||
| #endif | #endif | ||||
| public static DateTimeOffset FromSnowflake(ulong value) | public static DateTimeOffset FromSnowflake(ulong value) | ||||
| @@ -29,12 +30,12 @@ namespace Discord | |||||
| return new DateTimeOffset(ticks, TimeSpan.Zero); | return new DateTimeOffset(ticks, TimeSpan.Zero); | ||||
| #endif | #endif | ||||
| } | } | ||||
| public static DateTimeOffset FromUnixMilliseconds(long seconds) | |||||
| public static DateTimeOffset FromUnixMilliseconds(long milliseconds) | |||||
| { | { | ||||
| #if NETSTANDARD1_3 | #if NETSTANDARD1_3 | ||||
| return DateTimeOffset.FromUnixTimeMilliseconds(seconds); | |||||
| return DateTimeOffset.FromUnixTimeMilliseconds(milliseconds); | |||||
| #else | #else | ||||
| long ticks = seconds * TimeSpan.TicksPerMillisecond + UnixEpochTicks; | |||||
| long ticks = milliseconds * TimeSpan.TicksPerMillisecond + UnixEpochTicks; | |||||
| return new DateTimeOffset(ticks, TimeSpan.Zero); | return new DateTimeOffset(ticks, TimeSpan.Zero); | ||||
| #endif | #endif | ||||
| } | } | ||||
| @@ -53,8 +54,8 @@ namespace Discord | |||||
| #if NETSTANDARD1_3 | #if NETSTANDARD1_3 | ||||
| return dto.ToUnixTimeMilliseconds(); | return dto.ToUnixTimeMilliseconds(); | ||||
| #else | #else | ||||
| long seconds = dto.UtcDateTime.Ticks / TimeSpan.TicksPerMillisecond; | |||||
| return seconds - UnixEpochSeconds; | |||||
| long milliseconds = dto.UtcDateTime.Ticks / TimeSpan.TicksPerMillisecond; | |||||
| return milliseconds - UnixEpochMilliseconds; | |||||
| #endif | #endif | ||||
| } | } | ||||
| } | } | ||||