我正在读取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版本。如果在提供文件之前可以进行一次格式更改或清除格式,那就没有问题,并且可以正常工作。
感谢您的回答。我将解析值以便稍后进行字符串处理。如果我指示将工作表添加到系统中以确保日期字段被格式化为文本之前的团队,您认为这可能是一个问题吗? –
通常以日期存储的日期更适合工作,因为很多代码都有处理日期的特殊例程。所以将它作为日期存储会让你稍后转换它的过程。其次,将日期存储为日期而不是字符串可能会减少内存。如果你打算让它们先把它作为一个字符串存储起来,那么当它没有发生时,你需要强制执行或处理错误。 –