使用日期和时间创建文件名

我希望你可以帮助我,我试着打电话给另一个class级的日期,看起来像“2011-03-09 06-57-40”,我想用这个来创建下面的文件但我每次都这样做输出运行它会在重新运行时调用dat()创建一个新文件。 我知道出了什么问题我只是不确定如何修复它,我想要写一个同样的文件。 我希望这是有道理的? :/

感谢您提前的任何帮助:)

date d = new date(); String cdate = d.date(); String f = h; try{ PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(cdate + ".tsv", true))); out.print(f); out.print("\t"); out.close(); }catch (IOException e){ } 

要创建名为当前日期/时间的文件:

 Date date = new Date() ; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss") ; File file = new File(dateFormat.format(date) + ".tsv") ; BufferedWriter out = new BufferedWriter(new FileWriter(file)); out.write("Writing to file"); out.close(); 

这个可能要容易得多。 只有一行代码可以将文件名称指定为日期和时间。

 String out = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss'.tsv'").format(new Date()); 

我会尝试回答所有相同的问题。 要以最可控的方式获取日期或时间字符串,请使用以下代码

 Calendar cal = Calendar.getInstance(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); String dateStr = dateFormat.format(cal.getTime()); 

查看http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html 。 这可能有助于理解。 您还可以为格式化的字符串添加小时/分钟或所需内容。

另一种选择可能是始终将日历中的“较低”字段(如毫秒,秒,分钟)设置为零。

 cal.set(Calendar.MINUTE,0); 

如果您要从其他课程中检索日期而无法直接创建日历,则还可以将日期放入日历中(注意:仅用于格式化,您不需要日历)

 cal.setTime(date); 

也许这有助于更好地控制创建的文件名/文件。

它会更有效 – 每个文件只有一个SimpleDateFormat和Date对象,以及没有字符串连接。

 private final static String getDateTime() { DateFormat df = new SimpleDateFormat("yyyy-MM-dd_hh:mm:ss"); df.setTimeZone(TimeZone.getTimeZone("PST")); return df.format(new Date()); } 

试试这个

 public class TimeBasedFile { public static void main(String[] args) { Date date = new Date() ; SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss") ; File file = new File("D:\\datebasedFile\\"+dateFormat.format(date) + ".tsv") ; try(BufferedWriter out = new BufferedWriter(new FileWriter(file))) { out.write("Writing to file"); // code for what data you want to store System.out.println("the file is created successfully"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 

它会在每次执行时创建新文件。

 public class BELogs { private final static Logger logger = Logger.getLogger(BSELogs.class .getName()); boolean makeDir = false; Date date = new Date(); SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy") ; String curDate =dateFormat.format(date); FileHandler fh; public BSELogs() { try { File file = new File("/home//Desktop/Logs "+curDate); makeDir = file.mkdir(); fh = new FileHandler(file+"/MyLogFile.log "+curDate,true); logger.addHandler(fh); // Set the logger level to produce logs at this level and above. logger.setLevel(Level.FINE); SimpleFormatter formatter = new SimpleFormatter(); fh.setFormatter(formatter); } catch (SecurityException ex) { **strong text** ex.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } logger.info("Data Log Genrated............"); } }