Я не собирался описывать эту проблему, пока не нашел другой веб-сайт форума с ТОЧНЫМ ЖЕ вопросом, на который мне нужно ответить (но без ответа.) Так что с благодарностью этому парню вот мой вопрос ...
У нас есть большое приложение Windows .Net (исполняемый файл winform), которое
устанавливается на рабочий стол клиента. Это приложение вызывает веб
услуги на сервере в другом часовом поясе. Практически все даты
ориентированные компоненты обнаруживают разницу часовых поясов и автоматически
скорректировать значения даты и времени (возвращаемые в наборах данных, сгенерированных SQL
запросов), что обычно желательно в большинстве приложений, но
вызывая проблемы с бухгалтерскими приложениями, связанными с датой
не ориентированный на дату и время Нас интересует только часть «дата».
Однако дата 01.01.2003 GMT-5 автоматически преобразуется в
31.12.2002 11:00 GMT-6 на клиенте. Вместо того, чтобы пройти через все
код и извлечение UniversalTime, чтобы вернуться к 01.01.2003 для
визуальные цели мы хотели бы просто "подделать" часовой пояс для
исполняемый на стороне клиента, заставляя его думать, что он находится в том же часовом поясе, что и
сервер.
Вопрос: Можем ли мы установить TimeZone программно для текущего
только запущенный экземпляр, а не глобальные настройки?
Мне действительно нечего добавить, потому что это наша ТОЧНАЯ проблема. В нашем случае у нас есть ActiveReports, которые извлекают удаленные данные SQL в наборы данных и затем связывают отчет с набором данных. Так, например, дни рождения неправильны, потому что мы храним для них дату, а X часов вычитаем для даты в западных часовых поясах? Таким образом, даты рождения выключены на минус 1.
Есть мысли?
Спасибо!
Сет