小编Ric*_*nes的帖子

在 Java 中获取包含允许的文件名字符的完整区域设置日期和小时字符串的好方法是什么?

我想构建一个带有区域设置日期和小时的字符串,连接起来,它必须是人类可读的并且与最常见的操作系统文件允许的字符兼容。就像是:

6-23-20_03-06-50

我将此用作用户的自动文件名建议。为此,我编写了以下代码:

public class CustomDateProvider {

    private static final String TWO_DIGIT_PATTERN = "%02d";

    public static String getDashedDateAndHourFromDate(Date date) {
        ZonedDateTime dateTime = date.toInstant().atZone(ZoneId.systemDefault());
        int hour = dateTime.getHour();
        int minute = dateTime.getMinute();
        int second = dateTime.getSecond();

        DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT, Locale.getDefault());
        String localeDate = dateFormat.format(date);
        String dashedDate = localeDate.replace("/", "-");

        return dashedDate
                + "_"
                + String.format(TWO_DIGIT_PATTERN, hour)
                + "-"
                + String.format(TWO_DIGIT_PATTERN, minute)
                + "-"
                + String.format(TWO_DIGIT_PATTERN, second);
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,我假设日期分隔符字符将始终为“ / ”,并且我不确定这是否总是正确的。无论哪种方式,可能都有更好的方法来实现我的目标,我会很感激任何改进。

java time filenames date

0
推荐指数
1
解决办法
52
查看次数

标签 统计

date ×1

filenames ×1

java ×1

time ×1