1. ホーム
  2. java

[解決済み] Androidで日付を比較する最適な方法

2022-05-13 16:39:53

質問

私は、String形式の日付を現在の日付と比較しようとしています。これは私がそれをした方法です(テストしていませんが、動作するはずです)、しかし、非推奨のメソッドを使用しています。代替のための任意の良い提案はありますか?ありがとうございます。

追伸:私はJavaでDateのものをするのが本当に嫌いです。同じことをするのに非常に多くの方法があり、どれが正しいか本当にわからないのです。

String valid_until = "1/1/1990";

Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd/mm/yyyy");
Date strDate = sdf.parse(valid_until);

int year = strDate.getYear(); // this is deprecated
int month = strDate.getMonth() // this is deprecated
int day = strDate.getDay(); // this is deprecated       

Calendar validDate = Calendar.getInstance();
validDate.set(year, month, day);

Calendar currentDate = Calendar.getInstance();

if (currentDate.after(validDate)) {
    catalog_outdated = 1;
}

どのように解決するのですか?

あなたのコードは次のようになります。

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date strDate = sdf.parse(valid_until);
if (new Date().after(strDate)) {
    catalog_outdated = 1;
}

または

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
Date strDate = sdf.parse(valid_until);
if (System.currentTimeMillis() > strDate.getTime()) {
    catalog_outdated = 1;
}