Формат даты и времени в C # - PullRequest
8 голосов
/ 24 апреля 2009

Я испытываю странное поведение C #. Это что-то вроде этого ..

var date = DateTime.Now.ToString("MM/dd/yyyy");

Я ожидаю, что будет

04/24/2009

но на самом деле его возвращение

04-24-2009

и моя культура ОС en-GB, я использую .Net 3.5 и WPF

любые решения, пожалуйста ... ???

Ответы [ 3 ]

18 голосов
/ 24 апреля 2009

Согласно документам MSDN для пользовательских строк формата даты и времени, / является заполнителем:

Представляет определенный разделитель даты в течении DateTimeFormatInfo.DateSeparator имущество. Этот разделитель используется для различать годы, месяцы и дни.

Если вы хотите определенный слеш, используйте «MM» / «dd» / «yyyy»:

DateTime.Now.ToString("MM'/'dd'/'yyyy")
3 голосов
/ 24 апреля 2009

Используется разделитель, установленный в региональных настройках, поскольку "/" является заменяющим символом для разделителя.

Вы можете создать свой собственный экземпляр DateTimeFormat с разными разделителями.

2 голосов
/ 24 апреля 2009

Попробуйте вызвать ToString для самой даты и передать объект CultureInfo.InvariantCulture:

string date = yourDate.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture));
...