读取和写入日期/日历到java中的txt文件

时间:2013-11-17 19:21:05

标签: java date

如何读取和写入日期/日历到txt文件。 我想将Date,String键值对的映射存储到文本文件中,并能够还原它 回到地图。 我现在所做的只是循环遍历所有地图并将Date.tostring()+“,”+ string写入txt文件,但我不知道如何将Date.tostring()恢复为Date,由方式,有没有可能我只需要年/月/日/小时/分钟,但我的Date.tostring()中没有时区,仍然将其恢复为Date对象?

4 个答案:

答案 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