Изменить ASP.NET язык по умолчанию для форматирования даты
-
06-07-2019 - |
Вопрос
По какой-то причине ASP.NET код на моем сервере теперь возвращает формат дд/ММ/гггг вместо того , чтобы ММ/дд/гггг когда я использую DateTime.toString("g").
Вместо замены всех строк формата "g" конкретной строкой формата или аргументом CultureInfo, есть ли способ, которым я могу просто переопределить в приложении формат "короткой даты" по умолчанию?
На самом деле я предпочитаю формат по умолчанию "гггг-ММ-дд", но я могу жить с ориентированным на США MM / dd / yyyy, поскольку все пользователи находятся в США.
Разъяснение: Я не хочу менять всю культуру по умолчанию, что может повлиять на такие вещи, как валюта и использование десятичных знаков / запятых при форматировании чисел.
Я просто хочу переопределить любой вызов toString ("g"), чтобы использовать формат даты ISO / IEC 8824 ("гггг-ММ-дд").
Я мог бы выполнить поиск и замену по всему своему коду, чтобы принудительно использовать CultureInfo при каждом вызове toString() , но это не кажется мне наиболее удобным решением.
Мое текущее решение заключается в том, что я определил статический метод для форматирования даты, и я вызываю его вместо toString() во всей моей кодовой базе.Но опять же, если я забуду сделать это где-нибудь в коде, у меня снова будет дурацкое свидание.
Решение 2
Настройка языка не была опцией, равно как и не зависела от региональных настроек сервера.
В итоге я написал служебную функцию для форматирования дат:
Public Shared Function FormatShortDate(ByVal d As Date) As String
If d=#1/1/0001# Then Return ""
If d=#1/1/1900# Then Return ""
'ISO/IEC 8824 date format
Return d.ToString("yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture)
End Function
Я вызываю это везде, где мне нужно отправить пользователю дату.Он также обрабатывает отображение дат по умолчанию ("волшебных").
Я написал несколько похожих функций для FormatShortDateTime и FormatLongDateTime.
Другие советы
Вы можете установить язык по умолчанию в web.config (уровень приложения), директиве страницы или директиве управления.
У меня есть различные приложения, где главные страницы настроены для разных культур, и страницы и элементы управления наследуются оттуда.
Вы можете манипулировать форматом короткой даты, изменив настройку в региональных настройках на панели управления вашего сервера.