在C#/ Winform中,如果用户输入,我可以将字符串解析为日期:dd/mm/yyyy
DateTime.Parse(date).ToString();
我希望能够在没有斜杠的情况下解析(例如在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;
}
}
}
}
以下是异常消息:
它说:“System.FormatException:字符串不被识别为DateTime valide”
答案 0 :(得分:13)
尝试这样的事情......
string unslashedValue = "01022012"
DateTime date;
DateTime.TryParseExact(unslashedValue, "ddMMyyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None, date);
...而且,使用date
变量,您只需要......
string slashedValue = date.ToString("dd/MM/yyyy");
答案 1 :(得分:3)
HuorSwords不是错误(除了使用string
作为输入值),但答案并未严格回答问题:为了显示请求日期,您需要在事实之后格式化为字符串:
DateTime date = DateTime.ParseExact(input,
"ddMMyyyy", CultureInfo.InvariantCulture);
string formattedDate = date.ToString("dd/MM/yyyy");