Я использую convert как:
Convert.ToDateTime(value)
но мне нужно преобразовать дату в формат "мм/гг".
Я ищу что-то вроде этого:
var format = "mm/yy";
Convert.ToDateTime(value, format)
Я использую convert как:
Convert.ToDateTime(value)
но мне нужно преобразовать дату в формат "мм/гг".
Я ищу что-то вроде этого:
var format = "mm/yy";
Convert.ToDateTime(value, format)
Вместо этого следует использовать DateTime.ParseExact
или DateTime.TryParseExact
. Они позволяют указать конкретные форматы. Я лично предпочитаю Try
-версии, поскольку я думаю, что они создают более приятный код для ошибок.
Если 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
DateTime
не имеет формата. формат применяется только тогда, когда вы превращаете DateTime
в строку, что происходит неявно, вы показываете значение на форме, веб-странице и т.д.
Посмотрите, где вы показываете DateTime, и установите там формат (или измените свой вопрос, если вам нужны дополнительные рекомендации).
Как насчет этого:
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"
Надеюсь, что это поможет!
Прочитайте ЗДЕСЬ.
Вы можете использовать Convert.ToDateTime, это показано на Как преобразовать строку Datetime в текущую строку datetime культуры
DateTimeFormatInfo usDtfi = new CultureInfo("en-US", false).DateTimeFormat;
var result = Convert.ToDateTime("12/01/2011", usDtfi)
Вы также можете использовать это.
dtFromDate = Convert.ToDateTime(DateTime.ParseExact(fromDate, "dd/MM/yyyy", CultureInfo.InvariantCulture)
.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture));