2015-01-07 4 views
0

я установил культуру для веб-приложения в .NET, чтобы использовать специальный формат для чисел, валюты и даты:CultureInfo («FR-BE») отличается от Windows, 8.1, чем прежде

System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-BE"); 

На ОС Windows 2008 сервер с IIS 7 Я получаю «d/m/yy» как короткий формат даты (что я хочу). На моей (новой) машине Windows 8.1 pro (разработчик и тест) я получаю формат «d-m-yy» для той же самой CultureInfo ... «dash» вместо разделителя «slash».

Я проверил также в Панель управления -> Регион и настройки для Франции (Бельгия) являются, как указано выше, отличается в сервере W2k8 чем в W8.1pro ...

версия .NET является 4 , что хорошо. Инвариантная культура не помогает, поскольку мне нужна конкретная культура для отображения в пользовательском интерфейсе, и проблема там была. Правда, изменения произошли с Windows 8 ... Наконец-то я использовал, чтобы переопределить некоторые настройки для культуры резьбы, как разделитель даты:

DateTimeFormatInfo dtfi = Thread.CurrentThread.CurrentCulture.DateTimeFormat; if (dtfi.DateSeparator != "/") dtfi.DateSeparator = "/"; 

Это гарантировало, что слэш будет разделитель даты все время в текущая нить.

спасибо. Кто-нибудь знает об этом? Бельгия изменила национальные стандарты? Или Microsoft сделала для них? Есть идеи? Спасибо.

+1

И каковы их версии .NET Framework? –

+0

Если вам нужен конкретный формат, почему бы не использовать инвариантную культуру? –

+0

Согласно [этому сайту] (http://en.wikipedia.org/wiki/Date_and_time_notation_in_Belgium) форматирование должно быть 'yyyy-mm-dd' – Magnus

ответ

0

Спасибо за ответы. Версия .NET - 4, что нормально. Инвариантная культура не помогает, поскольку мне нужна конкретная культура для отображения в пользовательском интерфейсе, и проблема там была. Это правда, изменения произошли с Windows 8 ... Наконец, я использовал переопределение некоторых параметров для культуры Thread, таких как Separator Date: DateTimeFormatInfo dtfi = Thread.CurrentThread.CurrentCulture.DateTimeFormat; if (dtfi.DateSeparator! = "/") Dtfi.DateSeparator = "/";

Это гарантирует, что косая черта будет постоянным разделителем даты в текущем потоке.

спасибо.