我有一个使用 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);
关于android - 如何从sqlite数据库中获取时间戳值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53873902/