ポイントは、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 件のコメント:
コメントを投稿