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 に答える