如何优化以下将 DataSet DateTime Column 从 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;
}