Незадолго до сохранения DateTime в базе данных я применяю DateTime в OracleTimeStampTZ.
Это преобразует DateTime в OracleTimeStampTZ в текущем часовом поясе, что круто, это то, что я хочу. За исключением часового пояса, который указан как время отключения (+13, поскольку я в Новой Зеландии).
Теперь я немного боюсь, что это укусит меня в задницу в отношении летнего времени. Я бы предпочел, чтобы OracleTimeStampTZ.TimeZone был представлен как именованный часовой пояс (и, следовательно, именованный часовой пояс в базе данных).
Для согласованности я хочу использовать часовой пояс, определенный в .NET (IE использует TimeZoneInfo.Local).
Проблема в том, что TimeZoneInfo, похоже, не содержит названия часового пояса, которые совпадают с именами часового пояса оракула. Кроме того, свойство OracleTimeStampTZ.TimeZone доступно только для чтения.
Кто-нибудь знает хороший способ достижения этого?
Заранее спасибо
== РЕДАКТИРОВАТЬ, объясняя мои опасения по поводу DST ==
Хорошо, меня беспокоит следующее:
Скажем, сейчас я сохраняю дату в базе данных для события, которое должно произойти через полтора года (в любом случае, на другой стороне летнего времени).
Скажите, что дата / время, которое я сохраняю, составляет 16:00 +13. Когда мы переходим на другую сторону летнего времени, смещение в моей стране может быть +12, что означает, что в моем местном часовом поясе ранее сохраненная дата считается 15:00, поскольку мое смещение изменилось, а сохраненное не изменилось.
Из того, что я понимаю, если именованный часовой пояс сохраняется, тогда, когда мы приходим к оценке даты на другой стороне летнего времени, мы можем определить правильное смещение для использования на основе того, является ли это летним временем или нет.
Правильно ли то, что я описал?