CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern не работает в .Net 3.5? - PullRequest
4 голосов
/ 10 февраля 2012

В настройках региона и языка в Windows 7 мой общий «Формат» установлен на «Английский (США)», но мои индивидуальные шаблоны для даты и времени установлены следующим образом ...

Длинная дата: dddd, dd MMMM, yyyy

Короткая дата: MM/dd/yyyy

Долгое время: HH:mm:ss

Короткое время: HH:mm

Когда я запускаюзатем, нацеленный на .Net 4.0

static void Main(string[] args)
{
  Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongDatePattern);
  Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern);
  Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern);
  Console.WriteLine(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortTimePattern);
}

Я получу результаты, как вы и ожидаете,

dddd, dd MMMM, yyyy
MM/dd/yyyy
HH:mm:ss
HH:mm

Но если я запусту его с нацеливанием на .Net 3.5 (или ниже), Я получаю:

dddd, dd MMMM, yyyy
MM/dd/yyyy
HH:mm:ss
h:mm tt

Вы заметите, что для формата с длительным временем используется выбранный мной формат Windows, но, по-видимому, для короткого формата используется значение по умолчанию "Английский (США)".

Я что-то пропускаю?

1 Ответ

1 голос
/ 10 февраля 2012

Похоже, что это известная проблема в .NET 3.5. См. Пункт обратной связи Microsoft Connect:

http://connect.microsoft.com/VisualStudio/feedback/details/167791/datetime-now-tostring-t-not-following-custom-regional-settings

Отзыв включает предложенный обходной путь.

...