【學習記錄】C#儲存資料至CSV文件 & DateTime格式模式控制解釋
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效果圖:
/***************************************************************************/
有時儲存檔案時需要以當前時間進行命名,關於格式控制的解釋如下:
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日