如何通过程序更改数据表中数据列的日期列数据格式。如何实现这一寻求帮助。我正在将数据表导出为CSV。在csv中,我的日期格式应为" yyyy / MM / dd hh:mm"。
答案 0 :(得分:1)
如果您要从DataTable
创建CSV文件并将特定格式应用于日期列,则可以DateTime.ToString
使用custom format string。
在你想要的情况下。 yyyy/MM/dd hh:mm
。但是,自/
will be replaced by your current date separator以来,您必须将其转义(yyyy'/'MM'/'dd hh:mm
)或使用CultureInfo.InvariantCulture
。
StringBuilder sb = new StringBuilder();
IEnumerable<string> columnNames = dt.Columns.Cast<DataColumn>().
Select(column => column.ColumnName);
sb.AppendLine(string.Join(",", columnNames));
var inv = CultureInfo.InvariantCulture;
foreach (DataRow row in dt.Rows)
{
IEnumerable<string> fields = dt.Columns.Cast<DataColumn>()
.Select(col => col.DataType == typeof(DateTime)
? row.Field<DateTime>(col).ToString("yyyy/MM/dd hh:mm", inv)
: row.IsNull(col) ? "" : row[col].ToString());
sb.AppendLine(string.Join(",", fields));
}
File.WriteAllText("filename.csv", sb.ToString());
您应该选择比逗号更安全的分隔符。
这假设DataColumn
的类型已经DateTime
(应该是什么样的)。如果是字符串,则必须首先将其解析为DateTime
才能应用所需的格式。因此,请使用DateTime.Parse
。