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

发布于 2024-12-11 09:58:15 字数 400 浏览 0 评论 0原文

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

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

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

如何格式化此数据列?

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. 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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小耗子 2024-12-18 09:58:15

使用 Column.DefaultCellStyle.Format 属性或设置它在设计器中

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

您可以通过此链接获取 更多信息

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

清醇 2024-12-18 09:58:15

对于 C++/CLI:

示例:12.12.20 12:13:01

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

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

For C++/CLI:

Exemple: 12.12.20 12:13:01

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

dataGridView_Archive->Columns[1]->DefaultCellStyle->Format = format;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文