android - MediaStore - 修改日期无法正常工作

标签 android mediastore

我从媒体存储中检索以下值

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

然后从结果中读取日期,如下所示:

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;

并且可以看到以下行为(示例值):

  • lDateToken 如下所示:1450696995000 <= CORRECT
  • lDateModified 如下所示:1450696995 <= WRONG

好像修改日期都被截断了。我用文件浏览器检查了真实文件的最后修改日期,值应该没问题,但我总是从我的媒体文件中得到这么短的数字。

关于为什么会发生这种情况的任何想法?

PS: 检查这个http://developer.android.com/reference/android/provider/MediaStore.Images.ImageColumns.html , 但修改后的字段没有列在那里...

最佳答案

DATE_TAKEN 是自 1970 年以来的毫秒数。 查看docs

DATE_MODIFIED 是自 1970 年以来的秒数,所以只要将它乘以 1000 就可以了。 查看docs

关于android - MediaStore - 修改日期无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34442121/

相关文章:

android - 单杠 slider

android - 如何获取和设置(更改)音频文件的 ID3 标签(元数据)?

android - insertImage 中的未知 URI 错误

android-mediaplayer - 在android中列出专辑

java - MediaStore 音频列数据已弃用

android - 主动扫描和被动扫描有什么区别?

android - RecyclerView 在调用 notifyDataSetChanged() 时跳到顶部

java - ReentrantLock 在同一个线程中被神秘地解锁,即使没有其他线程正在访问它

java - 如何使用 Eclipse 内存分析器工具 (MAT) 分析 HashMap

Android:从SD卡读取任何特定图像并将其显示为位图