使用filewriter将CSV文件从data.csv重命名为timestamp_data.csv

时间:2014-05-27 19:50:24

标签: java csv timestamp filewriter

你好Java专家在这里是我的问题。 我目前有一个运行一些查询的代码,并将数据输出到csv文件中。它目前将其输出到我的桌面并保存文件。

你可以看到

//csv printer
PrintWriter pw = null;
try {

    pw = new PrintWriter(new BufferedWriter(new FileWriter("C:\\Users\\JChoi\\Desktop\\new Date().getTime() + data.csv")));
} catch (Exception e) {
    System.out.println("I could not open the output csv file, see stacktrace below:");
    e.printStackTrace();
}

虽然它打印了文件,但文件刚出来说" new Date()。getTime()data.csv"

我想我错过了设定日期和时间的一步。最终我想得到它,以便当我运行此文件时,我将获得一个新的csv文件,其中包含今天的日期和当前时间。谢谢

编辑:已解决

Date dNow = new Date( );
SimpleDateFormat timeStamp = 
new SimpleDateFormat ("yyyy-MM-dd");

//csv printer
PrintWriter pw = null;
try {
    pw = new PrintWriter(new BufferedWriter(new FileWriter("C:\\Users\\JChoi\\Desktop\\google api csv outputs\\" + timeStamp.format(dNow) +"_data.csv")));
}

感谢所有

2 个答案:

答案 0 :(得分:1)

基本上

new FileWriter("C:\\Users\\JChoi\\Desktop\\new Date().getTime() + data.csv")));

创建一个String字面值(字面意思是,在引号之间输入您键入的内容)

您需要做的是一些变量/ String连接,例如......

new FileWriter("C:\\Users\\JChoi\\Desktop\\" + new Date().getTime() + "data.csv")));

你应该注意,Date#getTime将返回自Unix纪元以来的毫秒数。因此,您可能需要考虑使用某种DateFormat将值格式化为更易于阅读的格式

答案 1 :(得分:0)

声明

new FileWriter("C:\\Users\\JChoi\\Desktop\\new Date().getTime() + data.csv")

Cretes文件名为" C:\ Users \ JChoi \ Desktop \ new Date()。getTime()+ data.csv"

如果你想把实际日期放到文件名中,你应该像

那样连接字符串
new FileWriter("C:\\Users\\JChoi\\Desktop\\"+new Date().getTime() + +"data.csv")