读取和写入CSV文件的日期和时间

时间:2015-02-16 17:36:38

标签: java date csv

我需要能够将当前日期(年,月,日)和时间(小时,分钟,秒)存储到CSV文件中,然后再读取它们。

创建日期 我试过用

Date date = new Date();

构建当前日期,但是当我

date.toString();

它为我提供了一个非常优雅的字符串,用于描述日期和时间,它似乎无法存储到CSV文件中,以后可以阅读。那么如何以可以在以后阅读的格式写入CSV文件?

此外,在阅读CSV文件后,我找到了像

这样的建议
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date d = df.parse("17/02/2015 01:18:15");

这是否可行,基于以前输出的格式?我有什么例外可以抓住这个用途?

感谢任何帮助。谢谢

2 个答案:

答案 0 :(得分:4)

使用日期格式编写日期:

DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date date = new Date();
System.out.println(df.format(date));

要解析日期,请使用相同的格式:

DateFormat df = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date date = df.parse("17/02/2015 01:18:15");

根据您的使用情况,您可能还会发现明确设置时区(例如UTC)是值得的,这样无论本地计算机的时区/夏令时等如何,您都可以获得相同的结果。 / p>

df.setTimeZone(TimeZone.getTimeZone("UTC"));

或者,您可以使用基础long(自纪元以来的毫秒),在...之上构建日期...

写:

Date date = new Date();
System.out.println(date.getTime());

阅读:

long dateValue = // As read from the file
Date date = new Date(dateValue);

就我个人而言,我使用DateFormat,即使它更冗长,也更有效,因为它会使文件内容变得人性化。

如果您需要有关读/写文件或异常处理的帮助,我建议您提出不同的问题。

答案 1 :(得分:1)

您可以尝试将数据存储为Unix Timestamp(只是一个很长的数字)。

Read this question弄清楚如何获取unix时间戳,this找出如何将其转换回Date对象。