角度:从Excel导入具有不同时区的日期

时间:2019-03-14 11:32:29

标签: excel angular typescript js-xlsx

我在Angular 7中使用https://github.com/SheetJS/js-xlsx/来导入excel文件并进行一些处理,然后再将其发送到服务器。我读取Excel数据的功能是:

private readFile(file: any, dataType: string) {

 let fileReader: FileReader = new FileReader();

 fileReader.onload = (e) => {
   this.arrayBuffer = fileReader.result;
   let data = new Uint8Array(this.arrayBuffer);
   let arr = new Array();
   for (let i = 0; i !== data.length; ++i) { arr[i] = String.fromCharCode(data[i]); }
   let bstr = arr.join('');
   let workbook = XLSX.read(bstr, {type: 'binary', cellDates: true});
   let firstSheetName = workbook.SheetNames[0];
   let worksheet = workbook.Sheets[firstSheetName];
   let jsonData = XLSX.utils.sheet_to_json(worksheet);
   this.mapExcelModal.show(jsonData);
 };

 fileReader.readAsArrayBuffer(file);
}

如果在不同时区中读取包含日期的数据,我会遇到问题。例如,我在Excel文件中将数据输入为28/02/2019,并将该日期读取为Wed Feb 27 2019 23:59:20 GMT+0200 (Israel Standard Time)。 如果尝试从本地计算机导入它,则会得到Thu Feb 28 2019 00:00:00 GMT+0100 (Central European Standard Time)。无论时区如何,我都只需要阅读日期,就需要将其解析为2019-02-28T00:00:00Z格式。我使用momentjs进行格式化。我不明白为什么它会读取日期作为前一天,以及如何处理它以便时区不影响日期?有什么建议吗?

0 个答案:

没有答案