2015-12-23 1 views
1

je récupère les valeurs suivantes du magasin de médiasMediaStore - date de modification ne fonctionnent pas correctement

MediaStore.Images.Media.DATE_TAKEN 
MediaStore.Images.Media.DATE_MODIFIED 

Et lire les dates du résultat comme suit:

int dateTakenColumn = cursor.getColumnIndex(MediaStore.Images.Media.DATE_TAKEN); 
int dateModifiedColumn = cursor.getColumnIndex(MediaStore.Images.Media.DATE_MODIFIED); 
String dateToken = cursor.getString(dateTakenColumn); 
String dateModified = cursor.getString(dateModifiedColumn); 
long lDateToken = dateToken != null ? Long.parseLong(dateToken) : 0; 
long lDateModified = dateModified != null ? Long.parseLong(dateModified) : 0; 

Et peut voir le comportement suivant (valeurs par exemple):

  • lDateToken ressemble à ce qui suit: 1450696995000 < = CORRECT
  • lDateModified ressemble à ce qui suit: 1450696995 < = MAL

Il semble que les dates de modification sont toutes coupées. J'ai vérifié la date de dernière modification des vrais fichiers avec un explorateur de fichiers, et les valeurs devraient être correctes, mais je reçois toujours des nombres aussi courts de mes fichiers multimédias.

Des idées sur pourquoi cela se produit?

PS: vérifié ce http://developer.android.com/reference/android/provider/MediaStore.Images.ImageColumns.html, mais le champ modifié n'y figure pas ...

Répondre

3

DATE_TAKEN est en millisecondes depuis 1970. Voir la docs

DATE_MODIFIED est en secondes depuis 1970, alors que se multiplient par 1000 et tout ira bien. Voir le docs

+0

J'ai édité ma question ... Je pensais vraiment, mais je n'ai trouvé aucune documentation à ce sujet ... Avez-vous trouvé cela en l'essayant? C'est tellement bizarre que la date prise soit dans un format différent que la date modifiée ... – prom85

+0

Les docs le disent ... J'ai mis à jour mon post avec des liens pour vous – Buddy

+0

merci beaucoup – prom85