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

标签 c# winforms datagridview string-formatting

我的服务器上的数据采用 smalldatetime 的形式,但是当我将此数据返回到我的应用程序时,它会以 string 的形式返回给我。发生这种情况的原因有多种,但不适用于此问题。

我想做的是,当这些数据填充到我的 DataGridView 中时,我需要将其格式化为 datetime ,其中只有日期,没有时间,格式为“mm/dd/” yyyy'。我已尝试以下操作,但数据仍采用“mm/dd/yyyy hh:mm”格式:

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

如何格式化此列数据?

最佳答案

使用Column.DefaultCellStyle.Format属性或设置它 in designer

dataGridView1.Columns[0].DefaultCellStyle.Format = "MM'/'dd'/'yyyy";

您可以设置您想要的格式:

dataGridViewCellStyle.Format = "MM/dd/yyyy";
this.date.DefaultCellStyle = dataGridViewCellStyle;
// date being a System.Windows.Forms.DataGridViewTextBoxColumn

你可以这样做......

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;
        }
    }
}

请您访问此链接more info

关于c# - 在 DataGridView 中将字符串转换为日期时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7881085/

相关文章:

c# - 如何使用windows应用程序在第三方网站上填写并提交网页表单?

c# - 减少此 LINQ 查询的代码行

c# - WebClient中如何获取Cookie的JSESSIONID

c# - System.Data.OleDb.OleDbException : Invalid internet address. 如何使用 OleDb 连接到位于网络服务器上的 excel 文件

c# - ASP.Net Response.Close 问题

c# - 用户控制允许删除

datagridview - 如何限制用户在 DataGridView 列的特定单元格中仅输入数值?

winforms - 使用更新的数据更新数据 GridView

c++ - 数据 GridView 创建

c# - 访问/写入 EventLog 时出现问题