我使用以下代码显示照片的详细信息,但我发现myInfo.date的值是15-01-1970 22:15。 我犯了什么错误?谢谢!
public static void GetPhotoDetailsByID(Context mycontext,String id,DetailsInfo myInfo ) {
Cursor cur = mycontext.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
null,
MediaStore.Images.Media._ID+"=?",
new String[]{id},
"" );
if (cur.moveToFirst()){
myInfo.title= cur.getString(cur.getColumnIndex(MediaStore.Images.Media.TITLE));
myInfo.path = cur.getString(cur.getColumnIndex(MediaStore.Images.Media.DATA));
myInfo.size=cur.getString(cur.getColumnIndex(MediaStore.Images.Media.SIZE));
myInfo.date=cur.getString(cur.getColumnIndex(MediaStore.Images.Media.DATE_MODIFIED));
myInfo.date=GetDate(mycontext,myInfo.date);
/*
myInfo.resolution=cur.getString(cur.getColumnIndex(MediaStore.Images.Media.WIDTH))
+" x "
+cur.getString(cur.getColumnIndex(MediaStore.Images.Media.HEIGHT));
*/
myInfo.thumbnails = MediaStore.Images.Thumbnails.getThumbnail(
mycontext.getContentResolver(),
Integer.parseInt(id),
MediaStore.Images.Thumbnails.MICRO_KIND,
null);
}
cur.close();
}
private static String GetDate(Context mycontext,String date){
Calendar calendar = Calendar.getInstance();
long now =Long.parseLong(date) ;
calendar.setTimeInMillis(now);
Date myDate = calendar.getTime();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm dd-MM-yyyy");
return sdf.format(myDate);
}
答案 0 :(得分:2)
我认为您需要做的就是乘以1000:
Date date=new Date(cur.getLong(cur.getColumnIndex(MediaStore.Images.Media.DATE_MODIFIED))*1000);
答案 1 :(得分:0)
你不需要日历,
你可以做Date myDate = new Date(now); 现在的价值是什么?
答案 2 :(得分:0)
<强> android.provider.MediaStore.MediaColumns.DATE_MODIFIED 强>
提供上次修改的时间,但自1970年以来,时间单位为秒。所以你必须做数学并计算图像的日期和时间。
您可以查看Android文档here和here以获取参考资料
您可以获得文件的上次修改日期,如下所示
File file = new File("Your file path");
Date lastModDate = new Date(file.lastModified());
Log.i("File last modified : "+ lastModDate.toString());