gpt4 book ai didi

javascript - NodeJS (JavaScript) - 转换日期最快的方法?

转载 作者:太空宇宙 更新时间:2023-11-04 02:55:04 25 4
gpt4 key购买 nike

在 NodeJS 中,我正在读取并解析一个超过 150 万行的 .txt 文件。每行的格式为:日期,数字,数字,其中每个日期为yyyyMMddhhmmss。示例行是:

20170506014255,100.01,200.02

使用jFile ,我可以在大约 2 秒内读取并解析所有 1.5M+ 行...

var jFile = require('jfile');

var data = [];

var dataFile = new jFile('./dataFile.txt');

dataFile.lines.forEach(function(line) {
data.push(line.split(','));
});

效果很好!但是,我想将日期格式更改为其他格式。为此,我使用 date-format进行转换...

... same as previous, with new line within forEach() ...

var dateFormatter = require('date-format');

dataFile.lines.forEach(function(line) {
let tdata = line.split(',');
tdata[0] = dateFormatter('MM/dd/yy hh:mm:ss', dateFormatter.parse('yyyyMMddhhmmss', tdata[0]));
data.push(tdata);
});

再说一次,这太棒了!大多。 以前只需要 2 秒的事情现在只需大约 25 秒。喘口气!

理想情况下,文件只需以正确的方式格式化日期,但这不是我能控制的。

是否有更快的方法来进行此转换?也许有更原生的方法,或者只是更快的包?

感谢您的见解!

最佳答案

我想对解析进行硬编码会更快:

 function fixFormat(date) {
const yy = date.slice(2, 4);
const MM = date.slice(4, 6);
const dd = date.slice(6, 8);
const hh = date.slice(8, 10);
const mm = date.slice(10, 12);
const ss = date.slice(12, 14);

return `${MM}/${dd}/${yy} ${hh}:${mm}:${ss}`;
}

或者真的很丑:

const y = 2, M = 4, d = 6, h = 8, m = 10, s = 12;
const pattern = fn => date => fn(p => date[p] + date[p + 1])

const fixFormat = pattern(p => p(M) + "/" + p(d) + "/" + p(y) + " " + p(h) + ":" + p(m) + ":" + p(s));

关于javascript - NodeJS (JavaScript) - 转换日期最快的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53982415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com