You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在指定目录创建带当前日期时间的文件或文件夹 低版本Java如何实现

Java 8 以前版本实现带日期时间的文件创建及时间判断方案

Java 8 以下没有java.time包,统一使用java.util下的SimpleDateFormat、Date、Calendar类完成时间处理。

1. 指定目录下创建名称包含当前日期时间的文件/文件夹

代码示例:

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateFileCreator {
    // 时间格式和原有Java8版本保持一致:年月日 时分秒
    private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMdd HHmmss");
    // 可自行修改为目标目录路径
    private static final String TARGET_DIR = "/your/target/directory/path";

    public static void main(String[] args) throws IOException {
        // 生成当前时间字符串
        String currentTimeStr = DATE_FORMAT.format(new Date());
        // 拼接完整路径,若创建文件夹可自定义后缀规则
        String fullPath = TARGET_DIR + File.separator + "file_" + currentTimeStr + ".txt";

        File target = new File(fullPath);
        // 创建文件:调用target.createNewFile();创建文件夹:调用target.mkdirs()
        boolean createSuccess = target.createNewFile();
        if (createSuccess) {
            System.out.println("创建成功,路径:" + fullPath);
        }
    }
}

注意:SimpleDateFormat是线程不安全的,多线程场景下建议每次使用时单独创建实例,不要复用全局静态变量。


2. 兼容旧版本的文件名时间解析、近3天判断逻辑

对应原有Java8代码的判断逻辑,旧版本实现如下:

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateFileChecker {
    private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMdd HHmmss");
    // 和原有代码保持一致,指定时区为东京时区,不需要可删除本段配置
    static {
        DATE_FORMAT.setTimeZone(java.util.TimeZone.getTimeZone("Asia/Tokyo"));
    }

    public static void main(String[] args) throws ParseException {
        // fileName为从文件名称中提取的时间字符串
        String fileName = "20240520 143022";
        // 解析文件名称对应时间
        Date fileDate = DATE_FORMAT.parse(fileName);

        // 计算3天前的时间节点
        Calendar calendar = Calendar.getInstance(DATE_FORMAT.getTimeZone());
        calendar.add(Calendar.DAY_OF_MONTH, -3);
        Date threeDaysAgo = calendar.getTime();

        // 判断是否为近3天内的文件
        if (fileDate.after(threeDaysAgo)) {
            // 执行自定义逻辑
            System.out.println("该文件为近3天内创建");
        }
    }
}

补充说明

  • 时间格式中的yyyy代表公元纪年,和Java 8中uuuu的作用基本一致,低版本SimpleDateFormat不支持uuuu写法,统一替换为yyyy即可。
  • 无特殊时区需求时可删除设置时区的代码,默认会使用系统当前时区。

内容的提问来源于stack exchange,提问作者Persi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 18:06:03