2016-02-15 2 views
2

Я пытаюсь запустить этот код:Fixed - Xamarin TimeZoneInfo.GetUtcOffset бросает NotImplementedException

_deviceTimeZone.GetUtcOffset(systemNow.ToDateTimeOffset()).TotalMilliseconds 

но получил исключение

Необработанное исключение: System.NotImplementedException: Метод или операция не реализована. на System.TimeZoneInfo.GetUtcOffset (DateTimeOffset DateTimeOffset) [0x00000] в /Users/builder/data/lanes/2098/3efa14c4/source/mono/mcs/class/corlib/System/TimeZoneInfo.cs:669

Я нахожу моноисточники с GetUtcOffset и NotImplementedException: mono github.

Как я могу получить смещение utc для своего часового пояса, если TimeZoneInfo не может этого сделать?


Исправлено: PR

ответ

0

С помощью @ Übercoder ответ я нашел решение:

_deviceTimeZone.GetUtcOffset(systemNow.ToDateTimeOffset().UtcDateTime).TotalMilliseconds; 

Я использую UtcDateTime вместо DateTime DateTime, потому что игнорируют смещение и возвращает «Не выбрано ', тогда как UtcDateTime преобразует DateTimeOffset в UTC, и я могу получить правильное смещение часового пояса.

0

моно действительно кажется, есть GetUtcOffset(DateTime dateTime) реализованы. Так почему бы вам не просто использовать, что вместо того, чтобы:

_deviceTimeZone.GetUtcOffset(systemNow.ToDateTimeOffset().DateTime).TotalMilliseconds;