如何将datetime格式化为datatable中的特定DATE格式

时间:2016-12-03 11:39:29

标签: c# date datetime datagridview datatable

在我的datagridview1中,DATE列显示格式“MM / dd / yyyy hh:mm:ss”

然后我使用这段代码。

我使用一个函数来填充像这样的数据视图

public void load_table()
{
    DataTable ltdgv = getLoad_table(); 
    //the getLoad_table() function return a datatable type and store it to ltdgv

   foreach (DataRow dr in ltdgv.Rows)
   {
       dr["DATE"] = DateTime.Parse((dr["DATE"].ToString())).ToShortDateString();
   }

   dataGridView1.DataSource = ltdgv;           
}

但是DATE列仍显示格式MM / dd / yyyy [例如:2016年11月27日]

但我想将其更改为dd / MM / yyyy或2016年11月27日

我尝试将其更改为=

dr["DATE"] = DateTime.Parse((dr["DATE"].ToString("dd/MM/yyyy"))).ToShortDateString();
// I fill a parameter to the .ToString()

但我现在得到“语法错误”。

那么,如何解决这个问题?

3 个答案:

答案 0 :(得分:4)

请勿尝试更改数据表中日期时间列的“格式” 简单的DateTime本身没有格式。

这是用于显示日期的工具,该日期包含以人类可读格式呈现的日期,无论此格式如何。

换句话说。 DataGridView必须执行此任务。

你只需要设置

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

(假设索引为零的网格列是您的日期列)

答案 1 :(得分:2)

将自定义格式放在输出ToString()中,而不是输入。

    foreach (DataRow dr in ltdgv.Rows)
    {
        dr["DATE"] = DateTime.Parse((dr["DATE"].ToString())).ToString("dd/MM/yyyy");
    }

答案 2 :(得分:0)

如果是 asp:BoundField

          using (var conn = new NpgsqlConnection(cs)) {
                conn.Open();

                var cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.Parameters.Add(new NpgsqlParameter("@param", 200));
                cmd.CommandText = @"
                DO $$ 
                    DECLARE _temp_val integer := @param;
                BEGIN       

                    -- do something                    
                    
                    CREATE TEMP TABLE TEMP_TB(
                        VALUE1 INTEGER
                    );

                    INSERT INTO TEMP_TB (VALUE1) VALUES (_temp_val);    

                END $$;

                SELECT * FROM TEMP_TB;
                ";

                var result = cmd.ExecuteScalar();
            }

如果是 asp:TemplateField

          using (var conn = new NpgsqlConnection(cs)) {
                conn.Open();

                var cmd = conn.CreateCommand();
                cmd.CommandType = CommandType.Text;
                cmd.Parameters.Add(new NpgsqlParameter("@param", 200));
                cmd.CommandText = "select @param;";

                var result = cmd.ExecuteScalar();
            }