2016-10-22 53 views
0

從哪裏獲取MediaStore視頻的拍攝日期?我從MediaStore獲得以下字段。從MediaStore獲取視頻的添加/修改/拍攝日期

MediaStore.Video.Media.DATE_MODIFIED 
MediaStore.Video.Media.DATE_TAKEN 
MediaStore.Video.Media.DATE_ADDED 

這些領域返回得體的默認值 -

dateModified: 1477043336 
dateTaken: 1477043336000 
dateAdded: 1477043352 

格式的日期 -

dateModified: 01/01/1970 
dateTaken: 01/01/1970 
dateAdded: 01/01/1970 

我雙重檢查股票庫>隨機視頻文件,我看到了正確的日期。我查看了MediaStore中的視頻列,但沒有看到其他列的日期正確。

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); 
    String formattedDate = dateFormat.format(new Date(row.getColumnIndex(MediaStore.Video.Media.DATE_MODIFIED))); 

    String dateModified = dateFormat.format(new Date(row.getColumnIndex(MediaStore.Video.Media.DATE_MODIFIED))); 
    String dateTaken = dateFormat.format(new Date(row.getColumnIndex(MediaStore.Video.Media.DATE_TAKEN) * 1000L)); 
    String dateAdded = dateFormat.format(new Date(row.getColumnIndex(MediaStore.Video.Media.DATE_ADDED) * 1000L)); 

    Log.d(TAG, "dateModified: "+dateModified); 
    Log.d(TAG, "dateTaken: "+dateTaken); 
    Log.d(TAG, "dateAdded: "+dateAdded); 

    Log.d(TAG, "dateModified: "+row.getString(row.getColumnIndex(MediaStore.Video.Media.DATE_MODIFIED))); 
    Log.d(TAG, "dateTaken: "+row.getString(row.getColumnIndex(MediaStore.Video.Media.DATE_TAKEN))); 
    Log.d(TAG, "dateAdded: "+row.getString(row.getColumnIndex(MediaStore.Video.Media.DATE_ADDED))); 
+0

您是否在查詢中請求這些列?如果您查看純數字值(而不是試圖將它們格式化爲日期),您看到了什麼值? – CommonsWare

+0

是的,我在MediaStore的原始數據後添加了最初的帖子。 – Meep

回答

0

這些領域返回得體的默認值

我不知道爲什麼你的第二個具有在最後三個額外的零。但是,使用a Unix date converter site

  • dateModified = 1477043336 =週五,2016年10月21日九時48分56秒GMT
  • dateAdded = 1477043352 =週五,2016年10月21日9時49分12秒GMT

而你的dateTaken,沒有零,就和dateModified一樣。因此,假設您可以計算出零的來源(例如,通過隨機決定將該值乘以1000L),您就可以得到有效的時間戳。

+0

謝謝,我忽略了那部分。 – Meep