将日期和时间读写到 CSV 文件中
Read and write date and time into CSV file
我需要能够将当前日期(年、月、日)和时间(小时、分钟、秒)存储到 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");
根据之前输出的格式,这可能吗?这种使用需要注意哪些例外情况?
感谢任何帮助。谢谢
您可以尝试将数据存储为 Unix Timestamp(只是一个长数字)。
Read this question to figure out how to get the unix time stamp and this 了解如何将其转换回 Date 对象。
要用日期格式写日期:
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)是值得的,这样无论本地计算机的时区/夏令时等如何,您都可以获得相同的结果。
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
,尽管它更冗长且工作量更大,因为它会使文件内容易于阅读。
如果您需要有关 reading/writing 文件或异常处理的帮助,我建议您提出单独的问题。
我需要能够将当前日期(年、月、日)和时间(小时、分钟、秒)存储到 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");
根据之前输出的格式,这可能吗?这种使用需要注意哪些例外情况?
感谢任何帮助。谢谢
您可以尝试将数据存储为 Unix Timestamp(只是一个长数字)。
Read this question to figure out how to get the unix time stamp and this 了解如何将其转换回 Date 对象。
要用日期格式写日期:
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)是值得的,这样无论本地计算机的时区/夏令时等如何,您都可以获得相同的结果。
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
,尽管它更冗长且工作量更大,因为它会使文件内容易于阅读。
如果您需要有关 reading/writing 文件或异常处理的帮助,我建议您提出单独的问题。