ポイントは、SQLiteの時刻はエポックタイム(1970年1月1日)から「何秒」経過しているかというUnix Timeで管理されているが、java.util.Date.getTime()が返すlong値はエポックタイムから「何ミリ秒」経過しているかを計算しているということだった。
単純に1000をかけることで解決。
こんな感じ。
if (cursor.moveToFirst()) {
do {
// 保存日を取得
long date = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATE_ADDED));
// SQLiteは秒ベースのUNIX時間で管理されているので1000を掛けてミリセカンドへ単位変更
date *= 1000;
// 年月日時分で保存日をフォーマット
CharSequence dateClause = DateUtils.formatDateTime(getApplicationContext(), date,DateUtils.FORMAT_SHOW_TIME | DateUtils.FORMAT_SHOW_DATE | DateUtils.FORMAT_SHOW_YEAR);
// 保存日をTextViewに設定
TextView download_tv_date_added = (TextView) row.findViewById(R.id.download_tv_date_added);
download_tv_date_added.setText(dateClause);
} while (cursor.moveToNext());
}
cursor.close();
0 件のコメント :
コメントを投稿