2017-07-25 5 views
0

ノードのcsv-stringifyパッケージを使用して、オブジェクトのリストをcsvに変換します。ノードcsv-stringify形式のタイムスタンプ列

カラムの1つにタイムスタンプが含まれ、stringifyメソッドがこれをエポック日付に変換しています。

var stringify = require('csv-stringify'); 

... 

input = [ 
{'field1':'val1', 'timemodified':'2016-08-16T23:00:00.000Z'}, 
... 
] 

stringify(input, function(err, output){ 
console.log(output); 
}) 

出力にtimemodifiedようにフォーマットされています。私は、元のタイムスタンプは、出力の書式を維持するにはどうすればよい

1471388400000 

私は、フォーマッタオプションを使用してみましたが、それは影響を与えなかった: http://csv.adaltas.com/stringify/examples/

stringify(input, {formatters: { 
     "timemodified": function(value){ 
     return value.format("YYYY/MM/DD hh:mm:ss"); 
     } 
    }},function(err, output) { 
     fs.writeFile('userUpload.csv', output, 'utf8', function(err) { 
     if (err) { 
      console.log('Error - file either not saved or corrupted file saved.'); 
     } else { 
      console.log('userUpload.csv file saved!'); 
     } 
     }); 
    }); 

答えて

0

私は、カスタムフォーマッタせずにあなたのコードを試してみましたが、期待どおりに動作します。私は 'val1,2016-08-16T23:00:00.000Z'を出力として得ます。

しかし、私は私のように入力して日付オブジェクトを持っている場合、私は、タイムスタンプを取得します:

input = [ 
{'field1':'val1', 'timemodified': new Date('2016-08-16T23:00:00.000Z')}, 
... 
] 

日付オブジェクトは、あなたの入力であるかどうかを確認してください。

関連する問題