0

文字列形式の日付が2つあり(例:2012-04-23、2012-03-08)、それらの違いを見つけたいと思います。

Javaでそれを計算するための最良の方法は何ですか?

私は時間ではなく日付だけに関心があります

4

5 に答える 5

3

次を使用して文字列を日付に変換できます。

String dateString = "2012-04-23";
Date date = new SimpleDateFormat("yyyy-mm-dd").parse(dateString);

SimpleDateFormatについては、ここでさらに読むことができます。


2つの日付の違いについては、次のようにミリ秒単位で計算できます。

int milliseconds = dateOne.getTime() - dateTwo.getTime();

getTime()1970年1月1日からのミリ秒数を返します。

数日で変換するには、次を使用します。

int days = milliseconds / (1000 * 60 * 60 * 24)
于 2012-12-05T21:18:23.190 に答える
2

プロジェクトにサードパーティのjarを追加する場合は、jodatimeを確認してください。

DateTimeFormatter formatter = DateTimeFormat.forPattern( "dd / MM / yyyy HH:mm:ss");

DateTime dt = formatter.parseDateTime(your-string);

  • それらの違いを見つけてください-interval

間隔間隔=新しい間隔(time1、time2);

また、jodatimelibの概念である間隔と期間の違いを確認することもできます。

于 2012-12-05T21:25:10.573 に答える
1

SimpleDateFormatを使用して文字列をDateオブジェクトに変換し、DateでgetTime()メソッドを使用して同等の時間をミリ秒単位で取得します。2つのミリ秒の値の差を取ります。

于 2012-12-05T21:17:56.450 に答える
0

以下のように、DateFormat、Date、Calendarの組み合わせが必要になる場合があります。

    DateFormat dFormat = new SimpleDateFormat("yyyy-MM-dd");
    Date date1 = dFormat.parse("2012-04-23");
    Date date2 = dFormat.parse("2012-03-08");
    long timeDifInMillis = date1.getTime() - date2.getTime();

    Date dateDiff = new Date(timeDifInMillis);
    Calendar diffCal = Calendar.getInstance();
    diffCal.setTime(dateDiff);
    System.out.println("Days="+diffCal.get(Calendar.DAY_OF_MONTH));
    System.out.println("Months="+diffCal.get(Calendar.MONTH));
    System.out.println("Years="+(diffCal.get(Calendar.YEAR)-1970));
于 2012-12-05T21:28:39.227 に答える
0

SimpleDateFormatを確認してください。解析機能があります。

于 2012-12-05T21:20:49.567 に答える