第二EDIT:javaの0から11までのgetMonth()の日付は、データベース内の検索を混乱させますか?
// the callback received when the user "sets" the date in the dialog
private DatePickerDialog.OnDateSetListener mDateSetListener =
new DatePickerDialog.OnDateSetListener() {
public void onDateSet(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
mYear = year;
mMonth = monthOfYear + 1;
mDay = dayOfMonth;
updateDisplay();
}
}
私は月に1ですが、私は比較するとき、再びそれを脱ぐことはありません:
は私の問題は、日付が日付ピッカーダイアログから設定されているかもしれない場所のように見えますデータベースのために...
編集: 私はこれをダブルチェックしました(ついにそれを得ました)。確かにthe
Date test1 = new Date(cobj.getTime().getTime()); //from the Calendar passed in
したがって、データベースから取得された日付は正しい日付です。それは、正しく使用して表示されていても、私のダイアログから戻ってきた1:私はcobj.getTimeなどのオブジェクトを見たとき
String val = cobjstrong text.get(Calendar.MONTH) + "/" +
cobj.get(Calendar.DAY_OF_MONTH) + "/"+ cobj.get(Calendar.YEAR);
は...実際に先駆け月である()getTime();。 (私が使っている日のために長い)。私が行方不明になっている他の方法や変換がありますか?
Calendarオブジェクトで.getTimeを使用しないでください(これは、DateオブジェクトのgetTimeをもう一度呼び出してからかかります)。ときには、私の最善の策は、データベースにミリ秒単位でロングを格納してから、それらを取り出してそこに日付変換を行うことです。
PRE-EDITの質問:
をだから私は、私は日付を保存してから日付を読み取ることができることを、データベースにこの日付のフィールドを持っている私は、EMを読んだとき...私は+1を追加する必要があります.getMonth()は、日付が1-12の代わりに0〜11の数値を返すためです。この問題といくつかの他のものを扱った後(例えば、.getMinutesがintを返すように、時間が5:00の場合は5:0だけが表示されますか?)、私は最終的に素晴らしい日付を表示しましたが、物事が消えた日にデータベースに問い合わせるために私は1ヶ月を推測しています。次ORMLiteのクエリを使用しているときだから、
2011年9月8日
(DD/MM/YYYY)形式の月を意味し、右照会しません。(ormliteに.qe、GreaterThanEqualに注意してください)。
public void updateDatePickerButtonUI(Calendar cobj, int widget) {
String val = cobj.get(Calendar.MONTH) + "/"+ cobj.get(Calendar.DAY_OF_MONTH)
+ "/"+ cobj.get(Calendar.YEAR);
btnChooseDateReview.setText(val);
//the following just won't query correctly, its a month off
try {
//sessionDate
QueryBuilder<SessionsData, Integer> sb =
mDB.getSessionsDao().queryBuilder();
sb.where().ge(SessionsData.SESSIONSDATE_ID_NAME, cobj.getTime());
List<SessionsData> sessions = mDB.getSessionsDao().query(sb.prepare());
for (int i = 0; i < sessions.size(); i++) {
try {
mDB.getClientsDao().refresh(sessions.get(i).getClient());
mDB.getPackagesDao().refresh(sessions.get(i).getPackage());
} catch (SQLException e) {
...
}
}
theSessions = new CustomSessionReviewAdapter(mContext,
R.layout.session_review_row, sessions);
theSessions.notifyDataSetChanged();
theList.setAdapter(theSessions);
} catch (SQLException e) {
...
}
}
だから私は間違った日付を処理する必要があります、多分表示目的のために月に追加するのは正しくありませんか?何か...多分私のカレンダーオブジェクトのクエリで、私はその月の部分を0〜11か何かにすることができます。
はい正しい仮定すべての表示はプラスです...しかし良い計画私はそれらの提案をお試しいただきありがとうございます – Codejoy
さて、私はこれをもう一度チェックしました(ついにそれを得ました)。確かに、日付test1 =新しい日付(cobj.getTime()。getTime());私が選択したものより1ヶ月遅れの日付が返されます.... – Codejoy
これは 'Calendar'オブジェクトの問題だとは本当に疑問です。あなたが 'Calendar'オブジェクトに戻り、それをデータベースに格納するときに、+ 1をしてボタンに行きましたが、-1をしていないのでしょうか? – Gray