Почему DateTime.ToString( "dd/MM/yyyy" ) дает мне dd-MM-yyyy?

Я хочу, чтобы мое datetime было преобразовано в строку, которая находится в формате "dd/MM/yyyy"

Всякий раз, когда я конвертирую его с помощью DateTime.ToString("dd/MM/yyyy"), я получаю dd-MM-yyyy.

Есть ли какая-то информация о культуре, которую я должен установить?

Ответ 1

Слэш - это разделитель дат, поэтому он будет использовать текущий разделитель даты культуры.

Если вы хотите жестко запрограммировать его для использования косой черты, вы можете сделать что-то вроде этого:

DateTime.ToString("dd'/'MM'/'yyyy")

Ответ 2

Перейдите CultureInfo.InvariantCulture в качестве второго параметра DateTime, он вернет строку как вы хотите, даже очень специальный формат:

DateTime.Now.ToString("dd|MM|yyyy", CultureInfo.InvariantCulture)

вернется: 28 | 02 | 2014

Ответ 3

Добавьте CultureInfo.InvariantCulture в качестве аргумента:

using System.Globalization;

...

var dateTime = new DateTime(2016,8,16);
dateTime.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

Вернется:

"16/08/2016"

Ответ 4

Тупой вопрос/ответ, возможно, но вы пробовали dd/MM/yyyy? Обратите внимание на капитализацию.

mm - это минуты с начальным нулем. Поэтому я сомневаюсь, что вы хотите.

Это может быть полезно: http://www.geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm