こんにちは皆この問題は今私を狂っています。私のデータベースにdueDate
という文字列があり、値はJan 18, 2018
です。私はそれを取り出し、私のrecyclerAdapterの文字列に保存しましたString dueDate = transactionTasks.get(position).get_transactiontaskpaydet().toString();
文字列を日付に変換して現在の日付に変換します
今私はそれを現在の日付と比較したいと思いますし、期日が現在の日付より後であれば、赤色のdueDateが表示されます。
は私のコードです。
String dueDate = transactionTasks.get(position).get_transactiontaskpaydet().toString();
Date cdate = new Date();
Date ddate = new Date(dueDate);
if(cdate.after(ddate)){
holder.date.setTextColor(Color.RED);
}
このコードは完全に機能しますが、問題はDate(dueDate);
です。 try
とcatch
を使用する別の方法を使用すると、結果が得られません。以下は
SimpleDateFormat format = new SimpleDateFormat("E, MMM dd yyyy");
Date curDate = new Date();
try {
Date datedue = format.parse(dueDate);
if(curDate.after(datedue)) {
holder.date.setTextColor(Color.RED);
}
} catch (ParseException e) {
e.printStackTrace();
}
コードされており、私はDate duedate = null;
を使用してtry
ブロック外Date
を作成しようとした場合、そのはtry
ブロック内の値を取得していないので、私はエラーを取得します。これは完璧に動作しても廃止予定のコードを使用しないでください。
私が見つけたすべての答えは私にとってはうまくいかなかった。文字列を日付に変換するだけで、現在の日付と比較できるようにする必要があります。ありがとうGuys
カレンダーを使用するcal = Calendar.getInstance();代わりに – RaniDevpr
これはまさに別の「奇妙な構文で日付を解析するにはどうすればよいのですか?」という質問です。私は一般的なQ&Aにリンクしました。これには、あなたの日付構文と一致する日付フォーマットを作成する方法が(他のものの中でも)説明されています。 (そのQ&Aがうまくいかない場合は、正しく読んでいない!) –