Не ясно, означает ли ZZZZ просто смещение (которое не является полной информацией о часовом поясе) или название часового пояса.Это важно, потому что смещение будет меняться со временем, обычно из-за перехода на летнее время.
Если это просто смещение, то DateTimeOffset
из .NET 2.0SP1 покроет все, что вам нужно (но вам придетсябудьте осторожны из-за неполной информации).
Если это имя зоны реального времени, TimeZoneInfo
из .NET 3.5 может вам помочь - в зависимости от формата имени.При этом используются имена Windows (например, «стандартное время по Гринвичу») вместо более распространенных имен zoneinfo (например, «Европа / Лондон»).Вам нужно будет хранить DateTime
или (предпочтительно) DateTimeOffset
вместе с TimeZoneInfo
.
В будущем Noda Time сможет сделать это для васпроще - но еще не готово к печати.