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

我在将数据转换为 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”

http://img1.mukewang.com/64bbaadb0001841901770406.jpg

jeck猫
浏览 130回答 1
1回答

阿晨1998

您可以尝试设置 CurrentInfo.CurrentCulture 的默认 DateTimeFormat,以便强制使用 ToString 将吐出的默认 DateTime 格式。我相信默认情况下 .ToString() 将生成与 ShortString 格式相关的 d/MM/yyyy 。尝试在输出日期之前将以下内容添加到代码中。CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();&nbsp;culture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";Thread.CurrentThread.CurrentCulture = culture;要恢复到您设置的内容,只需添加一些代码来首先存储原始值,然后在方法结束时重置CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();&nbsp;var originalShortDatePattern = culture.DateTimeFormat.ShortDatePatternculture.DateTimeFormat.ShortDatePattern = "dd-MMM-yyyy";Thread.CurrentThread.CurrentCulture = culture;...Your code...culture.DateTimeFormat.ShortDatePattern = originalShortDatePattern ;Thread.CurrentThread.CurrentCulture = culture;值得一试
打开App,查看更多内容
随时随地看视频慕课网APP