0
如何優化以下將DataSet DateTime列從US/UK格式轉換爲US格式的方法。最初的日期格式可以是美國/英國或任何其他國家。需要將其轉換爲美國日期格式輸出數據集中將DataSet中的DateTime列格式從US/UK轉換爲US
private DataSet ModifyDateToUSFormat(DataSet ds)
{
DataSet dsRes = new DataSet();
DateTimeFormatInfo usDtfi = new CultureInfo("en-US", false).DateTimeFormat;
//Convert from DateTime to String Type
DataTable dtCloned = ds.Tables[0].Clone();
foreach (DataColumn dc in ds.Tables[0].Columns)
{
if (dc.DataType == typeof(DateTime))
dtCloned.Columns[dc.ColumnName].DataType = typeof(string);
}
foreach (DataRow row in ds.Tables[0].Rows)
dtCloned.ImportRow(row);
//Change the String format to US format. Since Database expects US Format Only.
foreach (DataRow row in dtCloned.Rows)
{
foreach (DataColumn dc in ds.Tables[0].Columns)
{
if (dc.DataType == typeof(DateTime))
row[dc.ColumnName] = DateTime.Parse(row[dc.ColumnName].ToString(), CultureInfo.CurrentCulture, DateTimeStyles.NoCurrentDateDefault).ToString(usDtfi.ShortDatePattern);
}
}
dsRes.Tables.Add(dtCloned);
return dsRes;
}
Thx Matt爲您提供幫助。改性上述功能如下 '私有數據集ModifyDateToUSFormat(數據集DS) { 的foreach(DataColumn的DC在ds.Tables [0] .Columns) { 如果(dc.DataType == typeof運算(日期時間)) 直流。 DateTimeMode = DataSetDateTime.Unspecified; } return ds; }' – Ram
完全是一個完全不同的概念。你可能會發現這個設置已經*了* Unspecified' - 或者更可能是'UnspecifiedLocal' - 但這在這裏並不重要。您應該將精力集中在操縱數據集上,而不是集中在最終輸出數據集的位置上。 –