将数据导出到JAVA中的文本文件时的日期和写入问题

时间:2015-10-01 20:19:27

标签: java sqlite

我正在运行这段代码来获取日期并将其存储在日志文件中

String myDate ="";

                Date date = new Date();
                DateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");


                df.setTimeZone(TimeZone.getTimeZone("America/Chicago"));
                myDate= df.format(date);


                sql = "UPDATE download SET ts_" + ae_num + " = DateTime('now','localtime')" + " WHERE tipid = ?;";
                System.out.println(sql);
                stmt = c.prepareStatement(sql);
                stmt.setString(1, tipNum);

                stmt.executeUpdate();
                //c.commit();

                stmt.close();

                c.close();

                try
                {
                    String content = "Username: "+ uname + " File_Name: "+ filename+" Downloaded_Time: " + myDate;
                    File file = new File("C:\\log\\log.txt");

                    if(!file.exists())
                    {
                        file.createNewFile();
                    }

                    PrintWriter pw =new PrintWriter(new FileWriter(file,true));
                    pw.println(content);
                    pw.close();


                }catch (IOException e)
                {
                    e.printStackTrace();
                }

文本文件中月份的问题搞砸了 示例:

Downloaded_Time: 2015-48-01 08:48:45

应该是

Downloaded_Time: 2015-10-01 08:48:45

第二个问题是,如果有任何第二个网络服务器运行相同的确切代码,除非重命名,否则它将无法写入日志文件。为什么?

我需要将一些信息(包括日期)存储到文本文件中,我需要所有用户能够在同一个文件上写入。 有什么提示吗?

3 个答案:

答案 0 :(得分:3)

仔细查看您的日期格式。你有两次的分钟场,而一个月没有。

替换

    DateFormat df = new SimpleDateFormat("yyyy-mm-dd HH:mm:ss");

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

关于您的日志记录问题,让多个进程写入同一文件很棘手 你最好使用日志框架来做到这一点。

This question提供了有关如何安全地执行此操作的更多信息。

答案 1 :(得分:1)

您的格式字符串错误。 "毫米"是分钟数," MM" (区分大小写)是月份编号。

答案 2 :(得分:0)

Java日期格式中的月份为MM而非mm