Формат MM/dd/yyyy

У меня есть следующее:

PMRCutoffDate.Value = ReportCalc.Cutoff_Date.ToString("MM/dd/yyyy");
PMRDate.Value = DateTime.Now.ToString("MM/dd/yyyy");

я хочу, чтобы даты обнаружились как: 05.03.2010, не 05.03.2010 или 05.03.2010 или 05.03.2010

Однако моя программа ВСЕ ЕЩЕ показывает дату неправильно (3/10/2010).

Какие-либо идеи обо что случилось?

5
задан marc_s 10 March 2010 в 16:44
поделиться

4 ответа

В VS 2008 у меня есть следующий код с результатом, который вы ищете. Не могли бы вы опубликовать дополнительную информацию? Код:

Console.WriteLine(DateTime.Now.ToString("MM/dd/yyyy"));

Вывод:

03/10/2010
12
ответ дан 18 December 2019 в 07:29
поделиться

Проверьте в апплете «Язык и региональные стандарты» панели управления, был ли изменен формат даты. Вы должны иметь возможность изолировать себя от этих переопределений или необычных свойств языка и региональных параметров, используя свойство CultureInfo.InvariantCulture.DateTimeFormat в перегрузке DateTime.ToString ().

3
ответ дан 18 December 2019 в 07:29
поделиться

Приведенные выше ответы должны помочь вам уже, но если нет, и у вас все еще есть проблемы, вы можете создать следующий метод расширения для DateTime и просто принудительно использовать нужный вам формат независимо от настроек языка и культуры:

public static class StringExtension
{
    static public string ToStringFormatted(this DateTime dt)
    {
        return string.Format("{0:00}/{1:00}/{2:0000}", dt.Month, dt.Day, dt.Year);
    }

    // if the culture info change does fix your issue do:
    static public string ToStringFormatted2(this DateTime dt)
    {
        return dt.ToString("MM/dd/yyyy");
    }
}

// useage:
string date = DateTime.Now.ToStringFormatted();

// output:  03/10/2010

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

1
ответ дан 18 December 2019 в 07:29
поделиться

В соответствии с этой статьей вы можете 0 вставить даты с помощью String.format или DateTime.toString таким образом:

String.Format("{0:MM/dd/yyyy}", dt);
3
ответ дан 18 December 2019 в 07:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: