【学习记录】C#保存数据至CSV文档 & DateTime格式模式控制解释

时间:2022-11-05 04:26:30

数据类的定义:

   public class Result_Display
{
private string id;
public string ID
{
get
{
return id;
}
set
{
id = value;
}
}
private string depth;
public string DEPTH
{
get
{
return depth;
}
set
{
depth = value;
}
}
public Result_Display(string id, string depth)
{
this.id = id;
this.depth = depth;
}
public Result_Display() { } }

创建文件方法:

        private string CreateFile(string folder, string fileName, string fileExtension)
{
FileStream fs = null;
string filePath = folder + fileName + "." + fileExtension;
try
{
if (!Directory.Exists(folder))
{
Directory.CreateDirectory(folder);
}
fs = File.Create(filePath);
}
catch (Exception ex)
{ }
finally
{
if (fs != null)
{
fs.Dispose();
}
}
return filePath;
}

保存数据主函数:

        private bool SaveDataToCSVFile(Result_Display data, string filePath)
{
bool successFlag = true; StringBuilder strID = new StringBuilder();
StringBuilder strValue = new StringBuilder();
StreamWriter sw = null; try
{
sw = new StreamWriter(filePath,true);//此处的true代表续写,false代表覆盖
strID.Append(data.ID);
strID.Append(","); sw.Write(strID); //看个人需要,WirteLine()比Write()字符串尾多一个换行符 strValue.Append(data.DEPTH); sw.WriteLine(strValue);
}
catch (Exception ex)
{
successFlag = false;
}
finally
{
if (sw != null)
{
sw.Dispose();
}
} return successFlag;
}

附一张保存的csv效果图:

【学习记录】C#保存数据至CSV文档   &  DateTime格式模式控制解释

/***************************************************************************/

有时保存文件时需要以当前时间进行命名,关于格式控制的解释如下:

d 月中的某一天。一位数的日期没有前导零。 

 dd 月中的某一天。一位数的日期有一个前导零。 

 ddd 周中某天的缩写名称,在 AbbreviatedDayNames 中定义。 

 dddd 周中某天的完整名称,在 DayNames 中定义。 

 M 月份数字。一位数的月份没有前导零。 

 MM 月份数字。一位数的月份有一个前导零。 

 MMM 月份的缩写名称,在 AbbreviatedMonthNames 中定义。 

 MMMM 月份的完整名称,在 MonthNames 中定义。 

 y 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示不具有前导零的年份。 

 yy 不包含纪元的年份。如果不包含纪元的年份小于 10,则显示具有前导零的年份。 

 yyyy 包括纪元的四位数的年份。 

 gg 时期或纪元。如果要设置格式的日期不具有关联的时期或纪元字符串,则忽略该模式。 

 h 12 小时制的小时。一位数的小时数没有前导零。 

 hh 12 小时制的小时。一位数的小时数有前导零。 

 H 24 小时制的小时。一位数的小时数没有前导零。 

 HH 24 小时制的小时。一位数的小时数有前导零。 

 m 分钟。一位数的分钟数没有前导零。 

 mm 分钟。一位数的分钟数有一个前导零。 

 s 秒。一位数的秒数没有前导零。 

 ss 秒。一位数的秒数有一个前导零。 

 f 秒的小数精度为一位。其余数字被截断。 

 ff 秒的小数精度为两位。其余数字被截断。 

 fff 秒的小数精度为三位。其余数字被截断。 

 ffff 秒的小数精度为四位。其余数字被截断。 

 fffff 秒的小数精度为五位。其余数字被截断。 

 ffffff 秒的小数精度为六位。其余数字被截断。 

 fffffff 秒的小数精度为七位。其余数字被截断。 

 t 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。 

 tt 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在)。 

 z 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数没有前导零。例如,太平洋标准时间是“-8”。 

 zz 时区偏移量(“+”或“-”后面仅跟小时)。一位数的小时数有前导零。例如,太平洋标准时间是“-08”。 

 zzz 完整时区偏移量(“+”或“-”后面跟有小时和分钟)。一位数的小时数和分钟数有前导零。例如,太平洋标准时间是“-08:00”。

eg:DateTime.Now.ToString("HH时mm分ss秒_M月d日");  将输出类似这种:18时39分20秒_12月11日