我需要能够将当前日期(年,月,日)和时间(小时,分钟,秒)存储到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");
这是否可行,基于以前输出的格式?我有什么例外可以抓住这个用途?
感谢任何帮助。谢谢
答案 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对象。