From d370bf62d03e3d9d928a7c557882e90a0c0b034d Mon Sep 17 00:00:00 2001 From: Drewster727 Date: Thu, 31 Mar 2016 23:37:13 -0500 Subject: [PATCH] mono datetime offset workaround --- PlexRequests.Helpers/DateTimeHelper.cs | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/PlexRequests.Helpers/DateTimeHelper.cs b/PlexRequests.Helpers/DateTimeHelper.cs index 5cc3857e4..88103dcdf 100644 --- a/PlexRequests.Helpers/DateTimeHelper.cs +++ b/PlexRequests.Helpers/DateTimeHelper.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; namespace PlexRequests.Helpers { @@ -6,9 +7,20 @@ namespace PlexRequests.Helpers { public static DateTimeOffset OffsetUTCDateTime(DateTime utcDateTime, int minuteOffset) { - TimeSpan ts = TimeSpan.FromMinutes(-minuteOffset); - return new DateTimeOffset(utcDateTime).ToOffset(ts); + //TimeSpan ts = TimeSpan.FromMinutes(-minuteOffset); + //return new DateTimeOffset(utcDateTime).ToOffset(ts); + + // this is a workaround below to work with MONO + var tzi = FindTimeZoneFromOffset(minuteOffset); + var utcOffset = tzi.GetUtcOffset(utcDateTime); + var newDate = utcDateTime + utcOffset; + return new DateTimeOffset(newDate.Ticks, utcOffset); } + private static TimeZoneInfo FindTimeZoneFromOffset(int minuteOffset) + { + var tzc = TimeZoneInfo.GetSystemTimeZones(); + return tzc.FirstOrDefault(x => x.BaseUtcOffset.TotalMinutes == -minuteOffset); + } } }