android - 如何从sqlite数据库中获取时间戳值?

标签 android sqlite timestamp

我有一个使用 Sqlite 数据库的 Android 应用程序。 如图所示,我创建了时间戳列。

 String table   =  "CREATE TABLE IF NOT EXISTS "  + tableNameCreated + " (" +
            GymContract.GymEntry._ID                 + " INTEGER PRIMARY KEY, " +
            GymContract.GymEntry.COLUMN_SETS         + " INTEGER NOT NULL, " +
            GymContract.GymEntry.COLUMN_REPS         + " INTEGER NOT NULL, " +
            GymContract.GymEntry.COLUMN_WEIGHT       + " REAL  NOT NULL, " +
            GymContract.GymEntry.COLUMN_TIMESTAMP    + " TIMESTAMP DEFAULT CURRENT_TIMESTAMP , " +
            GymContract.GymEntry.COLUMN_MUSCLE_TYPE  + " TEXT   );";

    db.execSQL(table);
}

在我的适配器类中的 BindView 方法中,如何获取时间戳列的值并将其附加到适配器 View 以显示给用户?

   public void onBindViewHolder(@NonNull MyViewHolder holder, int      position) {

    if (!mCursor.moveToPosition(position)) {
        return;
    }

    int id = mCursor.getInt(mCursor.getColumnIndex(GymContract.GymEntry._ID));
    holder.id_varAdapter.setText(String.valueOf(id));

    int sets = mCursor.getInt(mCursor.getColumnIndex(GymContract.GymEntry.COLUMN_SETS));
    holder.set_varAdapter.setText(String.valueOf(sets));

    int reps = mCursor.getInt(mCursor.getColumnIndex(GymContract.GymEntry.COLUMN_REPS));
    holder.rep_varAdapter.setText(String.valueOf(reps));

    double weights = mCursor.getDouble(mCursor.getColumnIndex(GymContract.GymEntry.COLUMN_WEIGHT));
    holder.weight_varAdapter.setText(String.valueOf(weights));
}

最佳答案

只需对任何其他值执行相同的操作即可。 例如

String timestamp = mCursor.getString(mCursor.getColumnIndex(GymContract.GymEntry.COLUMN_TIMESTAMP));
holder.timestamp_varAdapter.setText(timestamp);

假设您已经相应地设置了 holder.timestamp_varAdapter 并且您希望时间戳的格式为 2018-12-20 18:59:33 并且您已经从表中提取了 TIMESTAMP 列。

如果您希望数据以另一种格式显示,您可以更改查询以使用其中一个日期/时间函数。

例如如果您只想要 2018-12-20,您可以使用 SELECT *, date(timestamp) AS mydate 进行查询,然后

String timestamp = mCursor.getString(mCursor.getColumnIndex("mydate"));
holder.timestamp_varAdapter.setText(timestamp);

Date And Time Functions

关于android - 如何从sqlite数据库中获取时间戳值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53873902/

相关文章:

android - 如何在sqlite中导入txt文件?

android - 时间戳:如何识别CPU命令到达声卡的时间?

java - 如何从对话框 fragment 打开新 Activity

android - DatePicker UI 渲染问题

java - 如何获取变量之前的值

c# - SQLite.Net-PCL 连接找不到数据库

android - android 上 sqlite 中的关系表

MySQL 选择顺序不按日期排序

java - 不同传感器数据中纳秒的不同值。如何弄清楚它们?

java - 在抽屉导航中添加 Google map Activity 时出错( Material 设计)