为了账号安全,请及时绑定邮箱和手机立即绑定

转换为 csv C# 时如何替换格式日期

转换为 csv C# 时如何替换格式日期

C#
jeck猫 2023-07-22 17:06:56
我在将数据转换为 csv 时遇到问题,尤其是格式日期“dd-MM-yyyy”。public void Export_CSV(DataTable dt, string FileName, string Separator, string Path){    string path = HttpContext.Current.Server.MapPath("~/" + Path + "/" + FileName + ".csv");    StringBuilder sb = new StringBuilder();    string[] columnNames = dt.Columns.Cast<DataColumn>().                                      Select(column => column.ColumnName).                                      ToArray();    sb.AppendLine(string.Join(",", columnNames));    foreach (DataRow row in dt.Rows)    {        string[] fields = row.ItemArray.Select(field => field.ToString()).                                        ToArray();        sb.AppendLine(string.Join(",", fields));    }    File.WriteAllText(path, sb.ToString());}结果,格式日期不是恒定的。它应该像“dd-MM-yyyy”
查看完整描述

1 回答

?
阿晨1998

TA贡献2037条经验 获得超6个赞

您可以尝试设置 CurrentInfo.CurrentCulture 的默认 DateTimeFormat,以便强制使用 ToString 将吐出的默认 DateTime 格式。


我相信默认情况下 .ToString() 将生成与 ShortString 格式相关的 d/MM/yyyy 。


尝试在输出日期之前将以下内容添加到代码中。


CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone(); 

culture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";

Thread.CurrentThread.CurrentCulture = culture;

要恢复到您设置的内容,只需添加一些代码来首先存储原始值,然后在方法结束时重置


CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone(); 

var originalShortDatePattern = culture.DateTimeFormat.ShortDatePattern

culture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";

Thread.CurrentThread.CurrentCulture = culture;

...

Your code

...

culture.DateTimeFormat.ShortDatePattern = originalShortDatePattern ;

Thread.CurrentThread.CurrentCulture = culture;

值得一试


查看完整回答
反对 回复 2023-07-22
  • 1 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信