Вы точно знаете, что ваш часовой пояс: действительно UTC +3: 30, все время, без летнего времени? Если это так, вы можете создать DateTimeOffset
с соответствующим смещением (3,5 часа). Например:
DateTimeOffset dtOffset = new DateTimeOffset(DateTime.UtcNow,
TimeSpan.FromHours(3.5));
Конечно, это дает вам DateTimeOffset
вместо DateTime
... Вы можете использовать это?
Лучшим решением является использование TimeZoneInfo
- например, вы можете получить правильный часовой пояс и вызвать
DateTime local = TimeZoneInfo.ConvertTimeFromUtc(utcDateTime, tzInfo);
... или вы могли бы использовать TimeZoneInfo
, но все-таки получить DateTimeOffset
:
DateTimeOffset dto = TimeZoneInfo.ConvertTime(DateTimeOffset.UtcNow, tzInfo);
Лично я бы порекомендовал вас использовать DateTimeOffset
, если вы можете, так как значение DateTime
несколько неоднозначно и трудно работать с правильно.
. Сроки и время в .NET - это немного беспорядок, к сожалению :(У меня есть проект под названием Noda Time, который должен улучшить состояние дел, если мы когда-либо закончим его, но он далек от готовности к производству на данный момент.
что вы будете делать, когда dayli ght экономит время? – Axarydax
Я понятия не имею, что я смутился о дневном спасении, есть ли идеи? – kamiar3001
Мы не знаем, почему вы пытаетесь использовать этот часовой пояс, поэтому трудно сказать. Что особенного в UTC + 3: 30? –