Наличие только смещения и того, находится ли оно в летнее время, на самом деле недостаточно для указания часового пояса: может быть несколько часовых поясов с одинаковым стандартным смещением и смещением DST, но которые имеют переходы DST в разное время. .
Эти данные уже есть в базе данных или вы все еще разрабатываете их? В идеале вы должны хранить идентификатор часового пояса - те, с которыми TimeZoneInfo
работает, являются идентификаторами Windows, что не является идеальным IMO (я предпочитаю идентификаторы IANA / Olson, с которыми обычно работает остальная часть отрасли ) но, по крайней мере, он представляет собой часовой пояс реального времени.
Как только вы получите TimeZoneInfo
и мгновение, которое хотите конвертировать, ConvertTimeFromUtc
и ConvertTimeToUtc
, вероятно, то, что вы ищете - но будьте внимательно относитесь к тому, что вы подразумеваете под «любым значением даты и времени»; вам нужно убедиться, что вы всегда точно знаете, что представляете.
BCL несколько неопрятен во всем этом, и это одна из причин, по которой я начал Noda Time , которая позволяет использовать данные часового пояса IANA, а также BCL.