【问题标题】:How change the format DateTime of a column in DataTable from c#如何从 c# 更改 DataTable 中列的格式 DateTime
【发布时间】:2012-05-27 18:36:51
【问题描述】:

在 DataTable 我有这种格式 mm/dd/yyyy hh:mm:ss AM 我想将格式更改为“dd.MM.yyyy”

 foreach (DataRow dr in dt.Rows)
      {
          dr["birth_day"]= String.Format("{0:dd.MM.yyyy}",dr["birth_day"]);
      }

它给了我这个错误:

字符串未被识别为有效的日期时间。无法将 存储在birth_day 列中。预期类型为 DateTime。

【问题讨论】:

  • 对不起,这看起来很明显。你没有给String.Format 任何要格式化的文本。
  • 您不能更改类型为 DateTime 的数据格式。它应该是在其他地方得到你想要的东西。而Error是因为@DCoder说的。

标签: asp.net datetime foreach datatable


【解决方案1】:

字符串格式需要多个参数,一个用于字符串,1-n 用于字符串中的每个变量。

例如

dr["birth_day"]= DateTime.Parse(String.Format("{0}:dd.MM.yyyy",dr["birth_day"]));

虽然我仍然不确定这会满足你的需求

【讨论】:

  • 您已编辑问题 - 是否还有未解决的问题? dr["birth_day"] 是一个日期时间字段,因此它如何存储在里面是无关紧要的,当你想显示它时,你会在那个时候转换它。
【解决方案2】:

这表示您没有为占位符 {0} 提供和参数,如

dr["birth_day"]= DateTime.Parse(String.Format("{0}:dd.MM.yyyy",SomeValuethatgoesbeforethe colon)); 

但是您的代码完全没有意义,要解析的日期在哪里?

【讨论】:

    猜你喜欢
    • 2020-04-22
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    相关资源
    最近更新 更多