【问题标题】:How to change date format for the date column in datatable?如何更改数据表中日期列的日期格式?
【发布时间】:2015-04-15 21:45:34
【问题描述】:

我正在从数据库中填充数据。 它包含两个字段:DATETIME

这两个字段都是datetime

我想遍历数据表并更改DATE 列的日期格式,即dd/MM/yyyy

int i = 0;
string d="";
foreach (DataRow dr in dataTable.Rows)
{
    d = dr["DATE"].ToString();
    DateTime date = Convert.ToDateTime(d);
    d = date.ToString("dd/MM/yyyy");
    dataTable.Rows[i]["DATE"] = d;
    i++;
}

我收到以下错误

字符串未被识别为有效的日期时间。

无法在 DATE 列中存储 <15/02/2015>。预期类型是 DateTime。我怎样才能实现它?

【问题讨论】:

  • 无法完成。您可以更改语言环境,使日期默认为第一天和第二个月,例如Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");,但您仍然可以获得相关的时间。否则,您将需要更改列类型或在打印或对日期执行任何操作后进行更改。

标签: c# string date datetime datatable


【解决方案1】:

,你没有告诉我们如何你创建了你的dataTable,但我的想法在这里..

如果您的DATETIME 列都是DateTime,那么您需要为它们提供Datetime 值。不是string

在 .NET Framework 中,DateTime 结构没有 任何 隐式格式。它只有日期和时间值。当你 try 格式化它时,你会得到它的字符串表示形式。这就是为什么 15/02/2015 在您的情况下将是 string,而不是 DateTime

您在Convert.ToDateTime 方法上得到FormatException 可能是因为您的d 值不是standard date and time formatCurrentCulture。您可以通过 DateTime.ParseExactDateTime.TryParseExact 方法使用自定义日期和时间解析。

string s = "15/02/2015";
DateTime dt;
if(DateTime.TryParseExact(s, "dd/MM/yyyy", CultureInfo.InvariantCulture,
                          DateTimeStyles.None,
                          out dt))
{
    Console.WriteLine(dt);
}

即使您这样做了,为什么要将 string 值保留在 datetime 类型列中?这完全没有意义。即使你这样做了,由于.Rows 返回一个DataRowCollection,你可能会得到Collection 被修改;枚举操作可能不会执行错误,因为您在迭代时尝试修改您的集合。

我建议您为您的字符串值创建另一个DataTable,并将它们添加到您的DateTime 值字符串表示中,如dd/MM/yyyy 格式;

int i = 0;
string d = "";
var stringDataTable = new DataTable();
stringDataTable.Columns.Add("DATE", typeof(String));
stringDataTable.Columns.Add("TIME", typeof(String));

foreach(DataRow dr in dataTable.Rows)
{
   d = ((DateTime)dr["DATE"]).ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
   stringDataTable.Rows[i]["DATE"] = d;
   i++;
}

【讨论】:

  • @RaizeAhamed 很高兴为您提供帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-20
  • 2016-02-19
  • 1970-01-01
  • 2021-04-14
  • 2015-01-06
  • 2022-11-03
  • 1970-01-01
相关资源
最近更新 更多