Convert.ToDateTime: как установить формат

Я использую convert как:

Convert.ToDateTime(value)

но мне нужно преобразовать дату в формат "мм/гг".
Я ищу что-то вроде этого:

var format = "mm/yy";
Convert.ToDateTime(value, format)

Ответ 1

Вместо этого следует использовать DateTime.ParseExact или DateTime.TryParseExact. Они позволяют указать конкретные форматы. Я лично предпочитаю Try -версии, поскольку я думаю, что они создают более приятный код для ошибок.

Ответ 2

Если value является string в этом формате, и вы хотите преобразовать его в объект DateTime, вы можете использовать DateTime.ParseExact статический метод:

DateTime.ParseExact(value, format, CultureInfo.CurrentCulture);

Пример:

string value = "12/12";
var myDate = DateTime.ParseExact(value, "MM/yy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);

Console.WriteLine(myDate.ToShortDateString());

Результат:

2012-12-01

Ответ 3

DateTime не имеет формата. формат применяется только тогда, когда вы превращаете DateTime в строку, что происходит неявно, вы показываете значение на форме, веб-странице и т.д.

Посмотрите, где вы показываете DateTime, и установите там формат (или измените свой вопрос, если вам нужны дополнительные рекомендации).

Ответ 4

Как насчет этого:

    string test = "01-12-12";
    try{
         DateTime dateTime = DateTime.Parse(test);
         test = dateTime.ToString("dd/yyyy");
    }
    catch (FormatException exc)
    {
        MessageBox.Show(exc.Message);
    }

Если тест будет равен "12/2012"

Надеюсь, что это поможет!

Прочитайте ЗДЕСЬ.

Ответ 6

Вы также можете использовать это.

 dtFromDate = Convert.ToDateTime(DateTime.ParseExact(fromDate, "dd/MM/yyyy", CultureInfo.InvariantCulture)
                      .ToString("MM/dd/yyyy", CultureInfo.InvariantCulture));