2010-11-29 3 views
1

У нас возникла проблема со встроенным форматированием даты .net. Мы используем сокращенный формат месяц:Форматирование даты форматирования для культуры в .net

string.Format("{0:MMM}", date); 

Для нашего чешского сайта, она выводит римские цифры (например, «IV», где в ан-ГБ была бы «Апрель»). Мы хотим изменить это на некоторые пользовательские аббревиатуры.

Каков наилучший способ для этого? Я действительно не хочу указывать в представлении if. Должен ли я использовать DateTimeFormatInfo?

Также, как Microsoft принимает решение о форматировании, основывается ли он на стандарте?

ответ

0

Какую культуру вы хотите использовать? Вы можете просто указать его в вызове string.Format. Например:

string text = string.Format(CultureInfo.InvariantCulture, "{0:MMM}", date); 

Обратите внимание, что если это действительно все, что вы форматированием, было бы проще назвать ToString:

string text = date.ToString("MMM", CultureInfo.InvariantCulture); 

(Таким образом, вам не нужно все составное форматирование stuff.)

+1

Это многоязычный сайт, и мы устанавливаем культуру потока на основе настроек браузера (или файлов cookie). Все остальные языки выдают желаемый формат. Нам нужна только культура cs-CZ. – JontyMC

+0

@JontyMC: В этом случае, когда вы устанавливаете культуру потока, возможно, вам нужно просто использовать специальный cs-CZ для использования любой другой культуры или другой с помощью 'DateTimeFormatInfo'. –

+0

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

Смежные вопросы