1

这是我的一段 c# 代码

if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
{
    foreach (DataRow dr in dsResult.Tables[0].Rows)
    {
        dr["Date"] = Convert.ToDateTime(dr["Date"]).ToString("yyyy-MM-dd");
    }
}
dsResult.Tables[0].AcceptChanges();

我想要做的是数据集的Date格式为 d/m/yyyy,我正在尝试将数据修改为格式化yyyy-MM-dd,但我的数据集没有得到更新。

4

1 回答 1

2

日期存储方式和显示方式是两件截然不同的事情。它显示1/7/2013 00:00:00 AMDataTable示例中的原因是因为它显示了DateTime基于您的文化设置的默认显示。

然而,这通常不是你想要的显示方式,所以有很多方法可以给这只猫剥皮,但我会给你一些。首先,您可以简单地更改应用程序的文化,使其默认以您想要的方式显示。

CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.ShortDatePattern = "yyyy-MM-dd";
Thread.CurrentThread.CurrentCulture = culture;

现在,当您显示DateTime值时,您将在默认情况下获得该文化,例如:

var dt = new DateTime();
dt.ToShortDateString(); // here is where the culture is used

您可能还会发现您的应用程序中有一个特定位置需要以某种方式显示它,您可以这样做:

var dt = new DateTime();
dt.ToString("dd-MM-yyyy"); // custom formatting on the fly

所以,简而言之,你不需要DataTable. 无论它如何显示都是相同的。

于 2013-01-09T13:48:20.107 回答