Convert string to DateTime in DataGridView
Use Column.DefaultCellStyle.Format property or set it in designer
or
dataGridView1.Columns[0].DefaultCellStyle.Format = "MM'/'dd'/'yyyy";
or
You can set the format you want:
dataGridViewCellStyle.Format = "MM/dd/yyyy";
this.date.DefaultCellStyle = dataGridViewCellStyle;
// date being a System.Windows.Forms.DataGridViewTextBoxColumn
you can do like this....
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
// If the column is the Artist column, check the
// value.
if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Artist")
{
if (e.Value != null)
{
// Check for the string "pink" in the cell.
string stringValue = (string)e.Value;
stringValue = stringValue.ToLower();
if ((stringValue.IndexOf("pink") > -1))
{
e.CellStyle.BackColor = Color.Pink;
}
}
}
else if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Release Date")
{
ShortFormDateFormat(e);
}
}
//Even though the date internaly stores the year as YYYY, using formatting, the
//UI can have the format in YY.
private static void ShortFormDateFormat(DataGridViewCellFormattingEventArgs formatting)
{
if (formatting.Value != null)
{
try
{
System.Text.StringBuilder dateString = new System.Text.StringBuilder();
DateTime theDate = DateTime.Parse(formatting.Value.ToString());
dateString.Append(theDate.Month);
dateString.Append("/");
dateString.Append(theDate.Day);
dateString.Append("/");
dateString.Append(theDate.Year.ToString().Substring(2));
formatting.Value = dateString.ToString();
formatting.FormattingApplied = true;
}
catch (FormatException)
{
// Set to false in case there are other handlers interested trying to
// format this DataGridViewCellFormattingEventArgs instance.
formatting.FormattingApplied = false;
}
}
}
would you pls go through this link for more info
Taryn
developer, techie, nerd.... ex-DBRE at Stack Overflow, previously a Community Manager for Stack Overflow. When I'm not at my desk, I do CrossFit and run (a lot).
Updated on June 04, 2022Comments
-
Taryn almost 2 years
I have data that on the server is in the form of a
smalldatetime
but when I return this data to my application it gets returned to me as astring
. This happens for a variety of reasons that don't apply to this question.What I am trying to do is when this data gets populated in my DataGridView I need to format it as a
datetime
with just the date no time in the format 'mm/dd/yyyy
'. I have tried the following but the data remains in the format of 'mm/dd/yyyy hh:mm
':this.DataGridView.Columns[7].DefaultCellStyle.Format = "d";
How can I format this column of data?