Почему день недели не форматируется в формате длинной даты для всех языков?

Мы использовали date.ToString ("D") для форматирования даты. Но когда мы глобализируем приложение на другие языки, мы сталкиваемся с проблемами. Мы ожидаем, что день недели появится, когда мы используем длинный формат даты, но это не так для всех языков. Согласно http://www.basicdatepicker.com/samples/cultureinfo.aspx, далеко не все языки, которые распечатывают день недели для длинного формата даты. Как мы должны отформатировать дату?


person magol    schedule 06.06.2012    source источник


Ответы (1)


Если вам нужен явный формат, укажите его следующим образом;

DateTime date = DateTime.Now;
string s = date.ToString("dddd, dd MMMM yyyy");

Согласно документу MSDN, спецификатор формата «D» зависит от календаря, который зависит от культуры.

Вы не должны делать предположения о форматировании строк или отображении даты, в частности, при интернационализации.

person RJ Lohan    schedule 06.06.2012
comment
Но приложения переведены на многие языки, и не хочется писать специальное форматирование для каждого перевода. Почему форматирование на всех языках такое разное? Здесь, в Швеции, формат длинной даты работает только в основном тексте, а не тогда, когда дата стоит сама по себе, как это должно быть в этом приложении. - person magol; 06.06.2012
comment
Вам не нужно должен писать форматирование для каждого языка, это то, что делает за вас DateTime.ToString(D). Если вы хотите, чтобы формат отображался одинаково независимо от языка, следуйте моему примеру. Вы не можете иметь оба! - person RJ Lohan; 06.06.2012