如何读取和写入日期/日历到txt文件。 我想将Date,String键值对的映射存储到文本文件中,并能够还原它 回到地图。 我现在所做的只是循环遍历所有地图并将Date.tostring()+“,”+ string写入txt文件,但我不知道如何将Date.tostring()恢复为Date,由方式,有没有可能我只需要年/月/日/小时/分钟,但我的Date.tostring()中没有时区,仍然将其恢复为Date对象?
答案 0 :(得分:2)
您可以使用下面time
变量中显示的格式将时间保存到txt文件,然后使用其余代码解析它。
String time = "Jul 24 2012 05:19:34";
DateFormat df = new SimpleDateFormat("MMM dd yyyy HH:mm:ss");
Date date = df.parse(time);
答案 1 :(得分:1)
您可以使用此方法创建具有随机名称的文件夹,然后在那里向txt文件插入日期:
try {
Random rand = new Random();
DateFormat df = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date today = Calendar.getInstance().getTime();
String reportDate = df.format(today);
String dateToPrintToFile = reportDate;
File folder = new File("<your Folder>/" + rand);
File file = new File("<your Folder>/" + rand + "/testDate.txt");
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(dateToPrintToFile);
bw.close();
} catch (Exception e) {
e.printStackTrace();
}
答案 2 :(得分:0)
您可以使用SimpleDateFormat格式化日期
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/HH/mm");
String line = sdf.format(date) + "," + text;
恢复
String[] l = line.split(",");
Date d = sdf.parse(l[0]);
String text = l[1];
答案 3 :(得分:0)
如果您不想处理解析人类可读的日期字符串,可以使用Date.getTime()
函数
返回此日期对象表示的自1970年1月1日格林尼治标准时间00:00:00以来的毫秒数。
换句话说,您可以获取此long
值并将其写入文件(作为字符串),而不是人类可读的日期字符串。然后从文本文件读回long
(作为字符串)并用
String[] l = line.split(","); //Split the line by commas
long value = Long.ParseLong(l[0]); //Parse the string before the comma to a long
Date readDate = new Date(value); //Instantiate a Date using the long