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

3
在我的应用程序中,我想将文件存储到SD卡中。
我希望当应用程序存储此文件时,将当前日期作为文件名添加,因此我编写了以下代码。
但是,当用户将设备语言更改为UTF-8语言(例如:波斯语 - 阿拉伯语等)时,文件将使用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);
}

我该怎么解决这个问题?

https://dev59.com/1n_aa4cB1Zd3GeqP5ZuJ - Prasanth S
顺便提一下,考虑放弃过时且出了名的麻烦的SimpleDateFormat及其相关类,并在您的Android项目中添加ThreeTenABP,以使用现代Java日期和时间API java.time。使用起来更加舒适。 - Ole V.V.
1个回答

2

首先,将当前日期时间创建为时间戳,然后将时间戳转换为本地英文日期,并按需要格式化。

 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();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接