Проблема часового пояса с Citrix C ++ / Win API

У меня проблема с Citrix, где часовой пояс (GetTimeZoneInformation()) возвращает клиента, где, как и все другие функции времени (GetLocalTime(), localtime()) возвращает время сервера. Что интересно, SystemTimeToTzSpecificLocalTime() также возвращает время сервера, даже если информация о часовом поясе, которую я передаю функции, является клиентской.

Я знаю, что XenApp 5.0 использует tzhook.dll для подключения к вызовам, чтобы вернуть клиент или сервер в зависимости от конфигурации. Это должно объяснить, почему, хотя уклон и UTC верны, SystemTimeToTzSpecificLocalTime() по-прежнему возвращает сервер, а UTC — Bias math должен был вернуть время клиента.

Xenapp настроен на использование часового пояса клиента. Я также подтвердил это в реестре на основе этой статьи CTX303498. Также интересно то, что .Net ведет себя правильно, он регистрирует и возвращает время / часовой пояс клиента. Я предполагаю, что у ловушки DLL есть какая-то ошибка, которая не применяет настройки единообразно ко всем функциям.

Кто-нибудь знает любое разрешение, кроме обновления до Xenapp 6.0? Модернизация находится в стадии разработки, но не произойдет до года или около того. Любые настройки реестра, патчи и т. Д.? Помощь приветствуется.

Citix Xenapp 5.0

Win 2008 r1

Обновить:

Я применил оперативное исправление CTX125414. Теперь я получаю непротиворечивое поведение, которое я получаю в клиентской среде, где время клиентское, но при преобразовании из Local в UTC используется смещение сервера.

Ниже приведен результат теста приложения.

Информация о местном времени:

Сейчас: 17.12.2013 14:50:54
GetLocalTime: 14:50
местное время: вт дек 17 14:50:54 2013
UTC Информация:
GetSystemTime: 21:50

Информация о часовом поясе:

Уклон, Имя: 420, Стандартное время США
UTC для местного с TZ: 14:50
UTC для местного без TZ: 16:50
Местное время в UTC с TZ: 19:50
Местное время в UTC без TZ: 19:50

Фиксированные конверсии:

UTC для местного с TZ: 14:50
Местное время в UTC с TZ: 21:50

Информация TimeZone использует Win API. Фиксированными являются мои процедуры, которые рассчитывают время из смещения. Смелые проблемы и исправления.

Итак, есть ли патч для этой проблемы?

0

Решение

.Сеть ведет себя правильно, потому что DateTime.Now начинается с времени UTC и применяется местный часовой пояс, а не с местного времени.

Вы можете сделать что-то подобное:

0

Другие решения

Других решений пока нет …