Ответ 1
У меня часто возникают подобные проблемы у чувствительных клиентов, где ПК ограничены.
Мой ответ здесь не точен, он предназначен только для вас:
В принципе, функция Format
для функции Lotus Notes Client выполняет следующие действия:
-
Он пытается прочитать настройки пользовательских локалей. ( "locale", а не "local" ). Они хранятся в реестре под
HKEY_CURRENT_USER\Control Panel\International
. -
Если шаг 1 выходит из строя, функция читает так называемый DefaultFallback. Это сохраняется в
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MUI\UILanguages
. Если вы посмотрите внимательно, вы найдете для немецкого языка DefaultFallBack "Английский" -
Если шаг 2 также терпит неудачу, то функция использует так называемый Нейтральный язык, который всегда является английским и жестко закодирован в API.
В нормальных средах шаг 1 всегда преуспевает. Однако в чувствительных областях может случиться так, что реестр будет перегружен и эти данные либо не будут сохранены в реестре, либо что у клиента есть привилегии доступа к нему. И затем используется резервный английский по умолчанию.
Кроме того, чтобы не забывать, появляются роуминг-профили и профили по умолчанию, которые также могут иметь перекрестное влияние!
Наконец, существует несколько способов доступа к реестру. Следовательно, может случиться так, что Excel преуспеет в шаге 1 и корректно форматирует дату, в то время как Lotus Notes получает ошибку и использует резервную ошибку по умолчанию.
В Windows существует ужасный комплексный API для доступа к международным настройкам. Это выросло более 20 лет! В ссылке MSDN вы найдете все эти функции под ключевыми словами "locale", "international" и "MUI" (многоязычный пользовательский интерфейс), это может помочь вам в дальнейшем.