我正在运行这段代码来获取日期并将其存储在日志文件中
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
第二个问题是,如果有任何第二个网络服务器运行相同的确切代码,除非重命名,否则它将无法写入日志文件。为什么?
我需要将一些信息(包括日期)存储到文本文件中,我需要所有用户能够在同一个文件上写入。 有什么提示吗?
答案 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
。