1. ホーム
  2. java

[解決済み] Android/Java - 日付差(日)

2023-08-23 03:26:20

質問

以下のコードで、現在の日付(1999年12月31日、つまりmm/dd/yyyyのフォーマット)を取得しています。

Textview txtViewData;
txtViewDate.setText("Today is " +
        android.text.format.DateFormat.getDateFormat(this).format(new Date()));

というフォーマットで別の日付を持っています。2010-08-25 (すなわち yyyy/mm/dd) ,

ので、私は日数で日付の違いを見つけたいのですが、どのように日数の違いを見つけるのですか?

(言い換えれば、私は 現在の日付 - yyyy/mm/dd フォーマットされた日付 )

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

あまり信頼できる方法ではありません。 JodaTime

  Calendar thatDay = Calendar.getInstance();
  thatDay.set(Calendar.DAY_OF_MONTH,25);
  thatDay.set(Calendar.MONTH,7); // 0-11 so 1 less
  thatDay.set(Calendar.YEAR, 1985);

  Calendar today = Calendar.getInstance();

  long diff = today.getTimeInMillis() - thatDay.getTimeInMillis(); //result in millis

以下は近似値...

long days = diff / (24 * 60 * 60 * 1000);

文字列から日付をパースするには

  String strThatDay = "1985/08/25";
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
  Date d = null;
  try {
   d = formatter.parse(strThatDay);//catch exception
  } catch (ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } 


  Calendar thatDay = Calendar.getInstance();
  thatDay.setTime(d); //rest is the same....

とはいえ、日付の書式は確定しているのだから また、次のようにすることもできます。 Integer.parseInt() で数値に変換することもできます。