Date.ToShortDateFormat () когда-нибудь использует неправильную локаль? - PullRequest
1 голос
/ 04 октября 2010

Я преобразовал свой проект VS 2008 в версию 2010, но сохранил его на платформе .NET 3.5.Я нигде не устанавливаю свой язык в приложении.

У меня есть пара компьютеров, работающих под управлением Windows 7 и XP, и для обоих регионов задано значение EN-AU.

Иногда мое приложение возвращает формат короткой даты, например, MM / dd / YY (EN-US).Как только вы выйдете из него и начнете снова, он вернется к нужному формату для AU (дд / мм / гг).Опять же, я не устанавливаю свой язык нигде в проекте.(У меня есть несколько отчетов RDLC, в которых языком EN-US является)

Есть ли причины, по которым это может произойти?Я также попытался установить язык Thread явно.Но такое же поведение.

Ответы [ 2 ]

3 голосов
/ 04 октября 2010

Datetime.UTC основывается на локальном системном времени и на том, соблюдает ли локальная система летнее время.

Независимо от того, установлено ли ваше местоположение.Средство выбора даты и времени должно автоматически настраиваться на основе UTC и вашей системы.

Проверьте эту ссылку, которая дает некоторые полезные советы для datetime

http://social.msdn.microsoft.com/forums/en-US/netfxbcl/thread/6b3b1e95-e044-46db-94ba-0e75fcf9d2b2/

1 голос
/ 04 октября 2010

Это странно.Я бы посоветовал вам не использовать ToShortDate (), поскольку я видел несколько проблем из этого.Вместо этого я рекомендую использовать следующий код:

string formattedDate = someDateTime.ToString ("d", CultureInfo.CurrentCulture);

.И вы можете ввести константу вместо «d» для большей читабельности (это короткая строка форматирования даты).

Всегда полезно передавать IFormatProvider, так как он работает как комментарий, четко документирующий ваши предположения (вВ приведенном выше примере я сказал: это строка даты, которую я хочу представить пользователю; если бы я хотел использовать эту дату для дальнейшей обработки, отправить ее по сети и т. д., я бы использовал CultureInfo.InvariantCulture).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...