【问题标题】:How to add the current date and time to the name of a saved file?如何将当前日期和时间添加到已保存文件的名称中?
【发布时间】:2016-12-08 07:54:25
【问题描述】:

我正在处理this sound recorder 活动。我在活动中添加了一个重新启动按钮以再次开始录制,但代码的问题是它覆盖了最后一个文件的新记录文件。我想编辑这部分代码。

outputFile = Environment.getExternalStorageDirectory().
    getAbsolutePath() + "/Recording" + date + time + ".3gpp";

问题是,我是一个编码新手,我不知道如何解释日期和时间,也不知道它是否有效。

【问题讨论】:

标签: javascript java android datetime android-activity


【解决方案1】:

怎么样

    SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
    String fName = String.format ("myFile_%s.txt", sdf.format(new Date ()));

感谢@FabianGünter 提供了一个完整的解决方案

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); 
outputFile = Environment.getExternalStorageDirectory(). 
             getAbsolutePath() + "/Recording" + sdf.format(new Date()) + ".3gpp";

【讨论】:

  • 我会破解这个答案,根据您提供的代码提供完整的代码示例: SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); outputFile = Environment.getExternalStorageDirectory()。 getAbsolutePath() + "/Recording" + sdf.format(new Date()) + ".3gpp";
  • @FabianGünter 谢谢我已经根据您的意见编辑了我的答案。
【解决方案2】:

使用这个函数,它将返回一个带有日期和时间的唯一文件路径

public String getUniqueFilePath(String name,String formate) {
    photo = new File(Environment.getExternalStorageDirectory(),
            new SimpleDateFormat("yyyy_MM_dd_HHmmss",
                    Locale.getDefault()).format(new Date()) + name + formate);
    return photo.getPath();
}

【讨论】:

    【解决方案3】:

    如果您只需要一个唯一的名称,您可以使用。

    您可以使用它来替换日期和时间。 getAbsolutePath() + "/Recording" + System.currentTimeMillis() + ".3gpp";

    它给出了自 1970 年 1 月 1 日以来的毫秒数。这通常是一个 uid。并且肯定会创建唯一且连续的名称。

    【讨论】:

      【解决方案4】:

      非常感谢我的朋友们。但我自己找到了答案。 添加:

      import java.util.Calendar;
      

      然后添加:

      Calendar cal = Calendar.getInstance(); 
      int seconds = cal.get(Calendar.SECOND);
      int minutes = cal.get(Calendar.MINUTE);
      int hour = cal.get(Calendar.HOUR);
      int date = cal.get(Calendar.DATE);
      int month = cal.get(Calendar.MONTH);
      int year = cal.get(Calendar.YEAR);
      

      然后:

      outputFile = Environment.getExternalStorageDirectory().
             getAbsolutePath() + "/Recording" + (year) + "-" + (month) + "-" + (date) + "-" + (hour) + "-" + (minutes) + "-" + (seconds) + ".3gpp";
      

      它对我有用。

      【讨论】:

      • 另一种给猫剥皮的方法(但更冗长且容易出错)
      猜你喜欢
      • 2013-08-14
      • 1970-01-01
      • 1970-01-01
      • 2020-02-26
      • 1970-01-01
      • 2014-03-15
      • 2013-03-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多