Можно найти хороший ответ на это здесь (FAQ C++).
Все наследованные участники и члены класса вызова, как гарантируют, будут созданы в начале выполнения кода конструктора и так могут быть сосланы безопасно в нем.
основной глюк - то, что Вы не должны вызывать виртуальные функции на this
. Большинство раз я попробовал это, это только заканчивает тем, что вызвало функцию базового класса, но я полагаю, что в стандарте говорится, что результат не определен.
Попробуйте использовать метод GetUtcOffset ()
в вашем экземпляре TimeZoneInfo
, который учитывает «правила настройки».
Использование этого метода должно работать в основном то же, что и в исходном примере, но вы будете использовать этот метод вместо свойства BaseUtcOffset
.
DateTime ukTime = // Parse the strings in a DateTime value.
TimeZoneInfo timeZoneInformation = TimeZoneInfo.FindSystemTimeZoneById("GMT Standard Time");
DateTimeOffset utcTime = new DateTimeOffset(ukTime, timeZoneInformation.GetUtcOffset(ukTime));
Как насчет:
DateTime.Parse(dateTimeString).ToUniversalTime();
Предполагается, что сервер базы данных хранит свои даты в том же часовом поясе, что и ваш сервер приложений.