日付の解析に問題があります。私のアプリでは、サーバーから新しいコメントを取得します。取得したエポックの長いタイムスタンプは正しいですが、それらを sqlite データベースに保存しようとすると、最後のコメントが日付を間違って解析することがあります。
SimpleDateFormat:
this.dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
this.dateFormat.setTimeZone(TimeZone.getTimeZone("GMT"));
解析:
Log.v("GET COMMENT TIME A", ""+cu.getString(cu.getColumnIndex("creation_time")));
try {
Log.v("GET COMMENT TIME B",""+dateFormat.parse(cu.getString(cu.getColumnIndex("creation_time"))));
c.setCreation_time(dateFormat.parse(cu.getString(cu.getColumnIndex("creation_time"))));
Log.v("GET COMMENT TIME C", ""+c.getCreation_time());
} catch (ParseException e) {}
Logcat: 以前のコメントは良好に解析されました
01-13 13:01:58.009: V/GET COMMENT TIME A(10536): 2013-01-13 12:01:37
01-13 13:01:58.017: V/GET COMMENT TIME B(10536): Sun Jan 13 13:01:37 CET 2013
01-13 13:01:58.017: V/GET COMMENT TIME C(10536): Sun Jan 13 13:01:37 CET 2013
Logcat: 最後のコメントが間違って解析されました:
01-13 13:01:58.064: V/GET COMMENT TIME A(10536): 2013-01-13 12:01:41
01-13 13:01:58.064: V/GET COMMENT TIME B(10536): Sun Jan 13 13:01:41 CET 2013
01-13 13:01:58.064: V/GET COMMENT TIME C(10536): Tue Jan 01 13:01:41 CET 2013
logcat GET COMMENT TIME B と C を見ると、
dateFormat.parse(cu.getString(cu.getColumnIndex("creation_time")))
最初に修正された解析された時間を返し、さらに1行で別の間違った時間を解析しますか? または、getCreation_time() が誤って解析された日付を返すことがあるのはなぜですか?
編集:コメントにはゲッターとセッターしかありません
public Date getCreation_time() {
return creation_time;
}
public void setCreation_time(Date creationTime) {
this.creation_time = creationTime;
}