2つの日付が文字列として与えられ、それらがこの形式で8/11/11 9:16:36 PM
あるとすると、2つの日付の差を計算できるようにそれらをJava Dateオブジェクトに変換するにはどうすればよいですか?
質問する
822 次
3 に答える
2
両方の時間がGMT/UTCである限り、実行しdate1.getTime() - date2.getTime()
てから結果を86400000で割って、日数を取得できます。残りはおそらくかなり直感的です。
編集-編集された質問に基づく
文字列を日付に変換するには、SimpleDateFormatクラスを使用します。
String yourDateString = "8/11/11 9:16:36 PM";
SimpleDateFormat format =
new SimpleDateFormat("MM/dd/yy HH:mm:ss a");
Date yourDate = format.parse(yourDateString);
于 2011-08-12T01:37:30.320 に答える
2
Dateのゲッターの大部分は非推奨になり、Calendarメソッドに置き換えられました。これがあなたがそれをする方法です
Date date1, date2; //initialized elsewhere
Calendar day1 = new Calendar();
day1.setTime(date1)
Calendar day2 = new Calendar();
day2.setTime(date2);
int yearDiff, monthDiff, dayDiff, hourDiff, minuteDiff, secondDiff;
yearDiff = Math.abs(day1.get(Calendar.YEAR)-day2.get(Calendar.YEAR));
monthDiff = Math.abs(day1.get(Calendar.MONTH)-day2.get(Calendar.MONTH));
dayDiff = Math.abs(day1.get(Calendar.DAY_OF_YEAR)-day2.get(Calendar.DAY_OF_YEAR));
hourDiff = Math.abs(day1.get(Calendar.HOUR_OF_DAY)-day2.get(Calendar.HOUR_OF_DAY));
minuteDiff = Math.abs(day1.get(Calendar.MINUTE)-day2.get(Calendar.MINUTE));
secondDiff = Math.abs(day1.get(Calendar.SECOND)-day2.get(Calendar.SECOND));
その後、それらの番号で好きなことをすることができます。
于 2011-08-12T01:50:45.533 に答える
1
フォーマットに一致するSimpleDateFormatを定義し(Java docは非常に単純です)、parseメソッドを使用して適切なDateオブジェクトを取得します。これにより、2つの日付の差を簡単に計算できます。この違いが生じたら、おそらく「手動で」日数/時間/分/秒を計算するのが最善ですが、SimpleDateFormat(またはその他のフォーマットメカニズム)を使用して適切な値を表示することも可能です。一般的な方法。
于 2011-08-12T01:51:05.873 に答える