0

我使用以下代码显示照片的详细信息,但我发现 myInfo.date 的值是 22:15 15-01-1970。
我犯了什么错误?谢谢!

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);
}
4

3 回答 3

2

我认为您需要做的就是乘以 1000 :

Date date=new Date(cur.getLong(cur.getColumnIndex(MediaStore.Images.Media.DATE_MODIFIED))*1000);
于 2014-02-26T12:34:04.323 回答
0

你不需要日历,

你可以做 Date myDate = new Date(now); 现在的价值是多少?

于 2013-07-25T10:00:07.837 回答
0

android.provider.MediaStore.MediaColumns.DATE_MODIFIED

提供上次修改但自 1970 年以来的时间,时间单位为秒。所以你必须做一个数学计算并计算出这些图像的日期和时间。

您可以在此处此处查看 android 文档以获取参考

您可以获得文件的最后修改日期,如下所示

File file = new File("Your file path");
Date lastModDate = new Date(file.lastModified());
Log.i("File last modified : "+ lastModDate.toString());
于 2013-07-25T10:28:47.283 回答