android 媒体文件显示时间不对,date_added和date_modified分别代表什么含义。

  1. 图片文件对应数据库字段如下:
812        db.execSQL("CREATE TABLE files (_id INTEGER PRIMARY KEY AUTOINCREMENT,"
813                + "_data TEXT UNIQUE COLLATE NOCASE,_size INTEGER,format INTEGER,parent INTEGER,"
814                + "date_added INTEGER,date_modified INTEGER,mime_type TEXT,title TEXT,"
815                + "description TEXT,_display_name TEXT,picasa_id TEXT,orientation INTEGER,"
816                + "latitude DOUBLE,longitude DOUBLE,datetaken INTEGER,mini_thumb_magic INTEGER,"
817                + "bucket_id TEXT,bucket_display_name TEXT,isprivate INTEGER,title_key TEXT,"
818                + "artist_id INTEGER,album_id INTEGER,composer TEXT,track INTEGER,"
819                + "year INTEGER CHECK(year!=0),is_ringtone INTEGER,is_music INTEGER,"
820                + "is_alarm INTEGER,is_notification INTEGER,is_podcast INTEGER,album_artist TEXT,"
821                + "duration INTEGER,bookmark INTEGER,artist TEXT,album TEXT,resolution TEXT,"
822                + "tags TEXT,category TEXT,language TEXT,mini_thumb_data TEXT,name TEXT,"
823                + "media_type INTEGER,old_id INTEGER,is_drm INTEGER,"
824                + "width INTEGER, height INTEGER, title_resource_uri TEXT)");
  1. 核心字段解释
    在这里插入图片描述
  2. android 媒体文件中的date_added和date_modified具体什么含义?

在 Android 的 MediaStore 中,date_added 和 date_modified 是两个重要的时间戳字段,它们用于描述媒体文件(如图片、视频、音频)的不同时间属性。下面是它们的具体含义:

date_added

  • 定义: date_added 表示媒体文件被添加到 Android 媒体库的时间。
  • 数据类型: Unix 时间戳(以秒为单位),指的是自 1970 年 1 月 1 日(UTC)以来的秒数。
  • 含义: 这个时间戳反映了文件在 Android 媒体库中首次出现的时间。即使文件在外部存储中已经存在了很长时间,date_added 只会记录文件被 Android 媒体库索引和扫描的时间。这意味着,如果文件被删除然后重新添加到媒体库中,date_added 可能会改变。
  • 使用场景: 用于确定媒体文件在媒体库中的相对“新鲜度”或索引时间。例如,在媒体库中显示最近添加的文件时,可以使用 date_added 排序。

date_modified

  • 定义: date_modified 表示文件内容最后一次修改的时间。
  • 数据类型: Unix 时间戳(以秒为单位),指的是自 1970 年 1 月 1 日(UTC)以来的秒数。
  • 含义: 这个时间戳反映了文件内容最后一次被修改的时间。它对应于文件系统中记录的文件修改时间。例如,如果你编辑了一个图片文件,date_modified 会更新为最近的修改时间。
  • 使用场景: 用于确定文件内容的最新状态,通常用于显示最近修改的文件或检查文件的更新状态。

在这里插入图片描述
在这里插入图片描述

4.示例代码
下面是一个示例代码,展示如何在 Android 中查询媒体文件的 date_added 和 date_modified 属性:

import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.provider.MediaStore;
import android.util.Log;

public class MediaFileInfo {

    public static void getMediaFileInfo(Context context) {
        ContentResolver contentResolver = context.getContentResolver();

        // 查询图片文件
        Cursor cursor = contentResolver.query(
                MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                new String[]{MediaStore.Images.Media._ID, MediaStore.Images.Media.DATE_ADDED, MediaStore.Images.Media.DATE_MODIFIED},
                null,
                null,
                null
        );

        if (cursor != null) {
            while (cursor.moveToNext()) {
                long id = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Images.Media._ID));
                long dateAdded = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATE_ADDED));
                long dateModified = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATE_MODIFIED));

                Log.d("MediaFile", "ID: " + id + ", Date Added: " + dateAdded + ", Date Modified: " + dateModified);

                // 将时间戳转换为日期格式
                java.util.Date dateAddedDate = new java.util.Date(dateAdded * 1000); // DATE_ADDED 返回的时间是秒为单位
                java.util.Date dateModifiedDate = new java.util.Date(dateModified * 1000); // DATE_MODIFIED 返回的时间是秒为单位
                Log.d("MediaFile", "Date Added (formatted): " + dateAddedDate.toString());
                Log.d("MediaFile", "Date Modified (formatted): " + dateModifiedDate.toString());
            }
            cursor.close();
        }
    }
}
  • 解释
    MediaStore.Images.Media.DATE_ADDED: 返回文件被添加到媒体库的时间。
    MediaStore.Images.Media.DATE_MODIFIED: 返回文件内容最后一次修改的时间。
  • 注意:
    这些时间戳是以秒为单位的 Unix 时间戳,所以在转换为 java.util.Date 对象时需要乘以 1000。
    这些时间戳可能会在某些特定情况下更新,例如文件被重新扫描或编辑时。
    通过理解 date_added 和 date_modified 的含义,可以更好地管理和排序媒体文件,适应各种应用场景,如显示最近添加的照片或跟踪文件的内容更改。
  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值