首页 > 解决方案 > Node.js 有没有办法将时间戳转换为 .csv 文件中的日期?

问题描述

我使用 C3-chart-maker 从 .csv 文件生成图表,但是我注意到我不能使用下面的图表,因为“时间戳”列的格式不正确。

有没有办法将“时间戳”中的值转换为“2020-05-25 12:15:00”之类的日期?

在此处输入图像描述

编辑:

这是我在评论中询问的代码

const fs = require('fs')
const path = require('path')
const csv = require('fast-csv')
var moment = require('moment')
fs.createReadStream('./test.csv')
    .pipe(csv.parse({headers: true}))
    .on('error', error => console.error(error))
    .on('data', row => {
        console.log(row)
        var time = row['timestamp']
        let dataset = row_.each(dataset, function(x) => {dataset[x] = moment(new Date(x.time)).format('YYYY-MM-DD HH:mm:ss')
        })
    })
    .on('end', rowCount => console.log(`Parsed ${rowCount} rows`))

我尝试实现这一行:

let dataset = row_.each(dataset, function(x) => 
{dataset[x] = moment(new Date(x.time)).format('YYYY-MM-DD HH:mm:ss')})

但是我得到“SyntaxError: Unexpected token '=>'”

以下是我的 .csv 文件中的一些行:

timestamp,latitude,longitude,niveau_eau,pression_eau,horametre_pompe,niv_huile,pression_huile,temperature_huile,boite_hydrostatique,rampe_gauche,rampe_droite,jet_avant_gauche,jet_avant_droite,jet_lateral_gauche,jet_lateral_droite,potence,lance,rampe_croisee_gauche,rampe_croisee_droite,rampe_saumure,aerorefroidisseur
43668.220659722225,nan,nan,8.5,-0.2,95.0,87.5,0.1,37.9,95.0,2.0,3.0,5.0,5.0,0.0,0.0,49.0,2.0,0.0,0.0,0.0,1.0
43668.22100694444,48.819776,2.3898612,8.6,-0.2,95.0,87.5,-0.2,37.9,95.0,2.0,3.0,5.0,5.0,0.0,0.0,49.0,2.0,0.0,0.0,0.0,1.0
43668.22168981482,48.8198016,2.3898386,8.6,-0.2,95.0,87.5,-0.2,37.9,95.0,2.0,3.0,5.0,5.0,0.0,0.0,49.0,2.0,0.0,0.0,0.0,1.0
43668.222407407404,48.819856,2.3898572,8.6,-0.3,95.0,87.5,-0.2,37.9,95.0,2.0,3.0,5.0,5.0,0.0,0.0,49.0,2.0,0.0,0.0,0.0,1.0

标签: node.jscsv

解决方案


我也遇到了同样的问题,.toUTCString()帮助我解决了同样的问题。

dataSet = dataSet.map(data => {
data.timestamp = data.timestamp.toUTCString();
return data;
})

推荐阅读