简体   繁体   English

在 DataGridView 中将字符串转换为日期时间

[英]Convert string to DateTime in DataGridView

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 a string .我有服务器上的数据是smalldatetime的形式,但是当我将此数据返回到我的应用程序时,它会作为string返回给我。 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 '.当这个数据在我的DataGridView我需要格式化为一个被填充我所试图做的是datetime只有日期格式“没时间mm/dd/yyyy ”。 I have tried the following but the data remains in the format of ' mm/dd/yyyy hh:mm ':我尝试了以下操作,但数据仍为“ mm/dd/yyyy hh:mm ”格式:

this.DataGridView.Columns[7].DefaultCellStyle.Format = "d";

How can I format this column of data?如何格式化此列数据?

Use Column.DefaultCellStyle.Format property or set it in designer使用Column.DefaultCellStyle.Format属性或在设计器中设置它

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你能通过这个链接了解更多信息

For C++/CLI:对于 C++/CLI:

Exemple: 12.12.20 12:13:01例如:12.12.20 12:13:01

System::String^ format = "dd.MM.yyyy HH:mm::ss";

dataGridView_Archive->Columns[1]->DefaultCellStyle->Format = format;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM