【问题标题】:Current timestamp as filename in Java当前时间戳作为Java中的文件名
【发布时间】:2011-11-21 06:14:19
【问题描述】:

我想用当前时间戳命名由我的 Java 应用程序创建的新文件。

我需要这方面的帮助。如何命名使用当前时间戳创建的新文件?我应该包括哪些课程?

【问题讨论】:

  • 如果同时创建多个文件怎么办?这是XY problem?真的想做什么?

标签: java timestamp


【解决方案1】:

DateSimpleDateFormat 以及 I/O 方面所需的任何类(有很多可能性)。

【讨论】:

  • aix 已经回答了这个问题,但不要忘记确保您只使用您所服务的所有操作系统上允许的字符。我的意思是使用 SimpleDateFormat。
  • @aix:我的应用程序每 30 分钟创建一次新文件。因此我需要时间+日期作为文件名。我试过这个:'字符串模式=“mm/dd/yyyy”; SimpleDateFormat 格式 = 新的 SimpleDateFormat(模式); str = format.format(new Date());'然后我将我的文件命名为 str.".txt",但它给了我一个错误。 [错误:49\20\2011.txt(系统找不到指定的路径)]。此外,我还需要当前时间。请帮忙。
【解决方案2】:

按照 aix 的建议使用 SimpleDateFormat 将当前时间格式化为字符串。 您应该使用不包含/ 字符等的格式。我建议使用类似yyyyMMddhhmm

【讨论】:

    【解决方案3】:

    不用太复杂,试试这个:

    String fileName = new SimpleDateFormat("yyyyMMddHHmm'.txt'").format(new Date());
    

    【讨论】:

    • 老兄,我喜欢单线 :) +1
    • 漂亮的简单线条
    • 如果不是所有文件都在同一分钟内保存,则也添加“秒”(“yyyyMMddHHmmss'.txt'”)
    • 更新:java.util.Datejava.util.Calendarjava.text.SimpleDateFormat 等存在严重缺陷的日期时间类现在是 legacy,被 Java 8 及更高版本中内置的 java.time 类所取代.
    【解决方案4】:

    您可以通过以下方式获取附加文件扩展名的当前时间戳:

    String fileName = new Date().getTime() + ".txt";
    

    【讨论】:

      【解决方案5】:

      试试这个

      String fileSuffix = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
      

      【讨论】:

        【解决方案6】:

        你可以使用DateTime

        import org.joda.time.DateTime
        

        选项 1:yyyyMMddHHmmss

        DateTime.now().toString("yyyyMMddHHmmss")
        

        会给20190205214430

        选项 2:yyyy-dd-M--HH-mm-ss

           DateTime.now().toString("yyyy-dd-M--HH-mm-ss")
        

        会给2019-05-2--21-43-32

        【讨论】:

          【解决方案7】:

          使用填充长度功能改进@Derek Springer 帖子:

          public static String getFileWithDate(String fileName, String fileSaperator, String dateFormat) {
              String FileNamePrefix = fileName.substring(0, fileName.lastIndexOf(fileSaperator));
              String FileNameSuffix = fileName.substring(fileName.lastIndexOf(fileSaperator)+1, fileName.length());
              //System.out.println("File= Prefix~Suffix:"+FileNamePrefix +"~"+FileNameSuffix);
              
              String newFileName = new SimpleDateFormat("'"+FileNamePrefix+"_'"+dateFormat+"'"+fileSaperator+FileNameSuffix+"'").format(new Date());
              System.out.println("New File:"+newFileName);
              return newFileName;
          }
          

          使用函数及其输出:

          String fileSaperator = ".", format = "yyyyMMMdd_HHmm";
          getFileWithDate("Text1.txt", fileSaperator, format);
          getFileWithDate("Text1.doc", fileSaperator, format);
          getFileWithDate("Text1.txt.json", fileSaperator, format);
          

          输出:

          Old File:Text1.txt   New File:Text1_2020Nov11_1807.txt
          Old File:Text1.doc   New File:Text1_2020Nov11_1807.doc
          Old File:Text1.txt.json  New File:Text1.txt_2020Nov11_1807.json
          

          【讨论】:

            【解决方案8】:

            您可以使用此选项

            String fileName = new SimpleDateFormat("yyyyMMddHHmmss'.txt'", Locale.getDefault()).format(new Date());
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-08-05
              • 2010-09-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多