我正在讀取Excel表格中的數據,第5列是日期字段。我有以下的邏輯,以確保輸入的日期將轉換爲YYYY-MM-DD格式 -從nodejs中的xlsx文件獲取統一的日期格式
var valid_from = new Date(data[counter][5]);
valid_from_new = var formatedDate = moment(valid_from).format("YYYY-MM-DD");
reqBody.valid_from = valid_from_new.toString();
我有日期2017-10-10
開始用,我能夠通過我的節點應用精細讀它。只要我不在Microsoft Excel 2010中編輯此字段,它就可以工作。如果我編輯它或只是查找/替換值,我會在reqBody.valid_from中獲得unix默認日期(1970-01-01)。
要找出更換後會發生什麼,我檢查,如果我取代2017-10-10
與2017-10-20
然後「清格式」(EXCEL工具),我得到43028
顯示在紙張,而對於日2017-10-10
它仍然是相同的,即2017-10-10
。我不明白爲什麼excel的行爲如此。
這可以由我的應用程序統一處理嗎?我只想讓「YYYY-MM-DD」格式適用於任何Excel版本。如果在提供文件之前可以進行一次格式更改或清除格式,那就沒有問題,並且可以正常工作。
感謝您的回答。我將解析值以便稍後進行字符串處理。如果我指示將工作表添加到系統中以確保日期字段被格式化爲文本之前的團隊,您認爲這可能是一個問題嗎? –
通常以日期存儲的日期更適合工作,因爲很多代碼都有處理日期的特殊例程。所以將它作爲日期存儲會讓你稍後轉換它的過程。其次,將日期存儲爲日期而不是字符串可能會減少內存。如果你打算讓它們先把它作爲一個字符串存儲起來,那麼當它沒有發生時,你需要強制執行或處理錯誤。 –