数据表日期时间格式问题

本文关键字:问题 格式 时间 日期 数据表 | 更新日期: 2023-09-27 18:12:28

好的,所以我的DataTable中有一个列是DateTime,它必须保持为DateTime,这样才能正确排序。问题是我无法将其格式化为所需的MM/dd/yyyy格式。以下是我的方法的代码,该方法格式化DateTable并从中创建一个新的格式化列,这是我唯一遇到格式化问题的列。它总是像01/15/2014 12:00:00 AM 一样回来

private DataTable formatDataTable17(DataTable dt)
{
    DataTable dtNew = new DataTable();
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        // Checks to see if the column name is date
        // if it is, then change the datatype of that
        // column to date time.
        if(dt.Columns[i].ColumnName.ToLower() == "date")
        {
            dtNew.Columns.Add(dt.Columns[i].ColumnName, typeof(DateTime));
        }
        else
        { 
            dtNew.Columns.Add(dt.Columns[i].ColumnName, typeof(String));
        }
    }        
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        DataRow newRow = dtNew.NewRow();
        //newRow[0] = dt.Rows[i][0];  //Date 
        newRow[0] = string.Format("{0:MM/dd/yyyy}", dt.Rows[i][0].ToString());
        newRow[1] = dt.Rows[i][1];  //CICS Region
        newRow[2] = dt.Rows[i][2];  //Transaction
        newRow[3] = dt.Rows[i][3];  //LPAR
        newRow[4] = String.Format("{0:0.000000}", dt.Rows[i][4]);  //CPU Per Transaction
        newRow[5] = String.Format("{0:###,###,##0}", dt.Rows[i][5]);  //Transaction Count
        newRow[6] = String.Format("{0:###,###,##0.00}", dt.Rows[i][6]);  //MIPS Rate
        newRow[7] = String.Format("{0:0.000000}", dt.Rows[i][7]);  //MIPS Usage
        dtNew.Rows.Add(newRow);
    }

数据表日期时间格式问题

DataTable只是存储数据的地方。

它为用户呈现(格式化(的方式应该由您决定用于在DataTable中显示数据的任何控件来处理。

例如,如果您使用的是DataGridView(WinForms(,您可能会有这样的代码:

dataGridView1.DataSource = dt;
dataGridView1.Columns["date"].DefaultCellStyle.Format = "MM/dd/yyyy";

您不需要formatDataTable17()方法。

您可以尝试这种方式。

newRow[0] = Convert.ToDateTime(dt.Rows[i][0]).ToString("MM/dd/yyyy");