如何将带有日期的文件存储到SD卡中?

2020年6月20日 4点热度 0条评论

在我的应用程序中,我想将文件存储到SD卡中。
我想要的是,当应用程序存储此文件时,将现在日期添加为文件名,为此,我编写了以下代码。

但是,当用户将设备语言更改为 UTF-8 语言(例如: Farsi -阿拉伯语,...)时,文件将使用 UTF-8 字符存储!

例如:存储文件,名称为:COM_MyVideo_۲۰۲۰-۱-۵但我想用这个名称存储:COM_MyVideo_2020-1-5
我的代码:

private String getFileSaveName() {
    videoName = GoodPrefs.getInstance().getString(ConstKeys.TEST_NAME, "MyApp");
    videoName = videoName + "-" + GoodPrefs.getInstance().getInt(ConstKeys.TEST_ID, 0) + "-";
    String filename = "yyyyMMdd_HHmmss";
    //Required to handle preference change
    filename = filename.replace("hh", "HH");
    String prefix = "COM_" + videoName;
    Date today = Calendar.getInstance().getTime();
    SimpleDateFormat formatter = new SimpleDateFormat(filename);
    return prefix + formatter.format(today);
}

我该如何解决?

解决方案如下:

尝试一下他的方法,首先将当前日期时间创建为时间戳,然后将时间戳转换为本地英语日期,然后根据需要设置其格式。

 Date date= new Date();

 long time = date.getTime();

 Calendar cal = Calendar.getInstance(Locale.ENGLISH);
    cal.setTimeInMillis(time * 1000);
    String date = DateFormat.format("dd-MM-yyyy", cal).toString();