更改数据表列中的DATETIME格式而不在C#中使用循环

时间:2012-11-27 07:24:32

标签: c# datetime datatable

我的数据表有一个'subscribeDate'列,其日期格式为MM / dd / yyyy hh:mm:ss格式。我想将此列中的所有日期更改为MM-dd-yyyy hh:mm:ss格式。有没有办法可以在不运行循环的情况下完成它?

2 个答案:

答案 0 :(得分:4)

我希望DataTable中的值属于DateTimeDateTimeOffset类型。 假设是这种情况,他们不会拥有格式。他们只是日期和时间。如何将它们转换为字符串取决于你。

如果他们已经处于适当的数据类型,您应该尝试更改获取数据的方式。尽可能早地将它从字符串格式转换为更合适的数据类型,并且只在您真正需要时将其 back 转换为字符串。

您还没有解释如何显示DataTable,但我知道的大部分方法都允许您指定格式字符串 - ,您可以在其中指定MM-dd-yyyy HH:mm:ss格式。 (请注意HH而不是hh,以获得24小时。)

答案 1 :(得分:3)

如果你的应用程序中没有一些文化限制(我不知道你的应用程序是如何工作的),你应该能够这样做。 有点像这样:

myTable.Columns["Date"].Convert(
    val => DateTime.Parse(val.ToString()).ToString("dd/MMM/yyyy"));

您可以在Is it possible to format a date column of a datatable?

中找到转换功能