使用名称中的当前日期和时间将图像保存到sd不起作用

3Ge*_*Gee 2 datetime android image save android-camera

在我的应用程序中,我使用一个按钮启动Camera应用程序并将图片保存到sdCard上按特定日期和时间命名的特定文件夹.当我对图片的名称进行硬编码时,它工作正常,但如果我试图在名称中输入日期则根本不起作用.

 Intent imageIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
 File imagesFolder = new File(Environment.getExternalStorageDirectory(), Constants.IMAGE_FOLDER_URI);
 imagesFolder.mkdirs();    
 Date d = new Date();
 CharSequence s  = DateFormat.format("MM-dd-yy hh:mm:ss", d.getTime());    
 File image = new File(imagesFolder, s.toString() + ".jpg"); //this line doesn't work

 Uri uriSavedImage = Uri.fromFile(image);
 imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, uriSavedImage);
 startActivity(imageIntent);
Run Code Online (Sandbox Code Playgroud)

如果我把:

s = "some_name";
Run Code Online (Sandbox Code Playgroud)

然后它工作,但我需要图像名称中的当前日期和时间.

waq*_*lam 10

冒号:不是文件名中的有效字符,这就是无法创建此类文件的原因.尝试将您的名称模式更改为以下内容:

CharSequence s  = DateFormat.format("MM-dd-yy hh-mm-ss", d.getTime());
Run Code Online (Sandbox Code Playgroud)


pat*_*135 5

放置此代码并尝试:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HH_mm_ss");
String currentTimeStamp = dateFormat.format(new Date());
Run Code Online (Sandbox Code Playgroud)