Browse Source

Fixed DateTimeUtils on .Net Standard 1.1

tags/1.0-rc
RogueException 8 years ago
parent
commit
13b9b15cf0
1 changed files with 9 additions and 8 deletions
  1. +9
    -8
      src/Discord.Net.Core/Utils/DateTimeUtils.cs

+ 9
- 8
src/Discord.Net.Core/Utils/DateTimeUtils.cs View File

@@ -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
} }
} }


Loading…
Cancel
Save