Изменить ASP.NET язык по умолчанию для форматирования даты

StackOverflow https://stackoverflow.com/questions/1034671

Вопрос

По какой-то причине 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 (уровень приложения), директиве страницы или директиве управления.

У меня есть различные приложения, где главные страницы настроены для разных культур, и страницы и элементы управления наследуются оттуда.

Вы можете манипулировать форматом короткой даты, изменив настройку в региональных настройках на панели управления вашего сервера.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top