将字符串解析为没有斜杠的日期

Wal*_*oni 5 .net c# formatting datetime winforms

在C#/ Winform中,如果用户输入,我能够将字符串解析为日期: dd/mm/yyyy

DateTime.Parse(date).ToString();
Run Code Online (Sandbox Code Playgroud)

我希望能够在没有斜杠的情况下解析(例如在datagridview或DateTimePicker中).

01022012 应该解析为 01/02/2012

任何人都知道如何解析它DateTime.Parse

这是我的代码:

    private void dataGridView_BadgeService_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
    {
        if (dataGridView_BadgeService.Columns[e.ColumnIndex].Name == "DateDebut" || dataGridView_BadgeService.Columns[e.ColumnIndex].Name == "DateFin")
        {
            string date = Convert.ToString(e.FormattedValue).Trim();

            if (date.Length > 0)
            {
                try
                {
                    DateTime _date;
                    DateTime.TryParseExact(date, "ddMMyyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out _date);
                    date = _date.ToShortDateString();
                    dataGridView_BadgeService.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = date;
                }
                catch
                {
                   MessageBox.Show("Merci de saisir une date, ou laissez cette zone vierge", "Action-Informatique", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                   e.Cancel = true;
                }
            }
        }

    }
Run Code Online (Sandbox Code Playgroud)

这是异常消息:

在此输入图像描述

它说:"System.FormatException:字符串不被识别为DateTime valide"

Huo*_*rds 15

尝试这样的事情......

string unslashedValue = "01022012"
DateTime date;
DateTime.TryParseExact(unslashedValue, "ddMMyyyy", 
                       CultureInfo.InvariantCulture, DateTimeStyles.None, date);
Run Code Online (Sandbox Code Playgroud)

......而且,有date变量,你只需...

string slashedValue = date.ToString("dd/MM/yyyy");
Run Code Online (Sandbox Code Playgroud)