Eclipseは非推奨のメソッドを使用していることを警告しています:
_eventDay = event.getEvent_s_date().getDate();
_
だから私はそれを次のように書き直しました
_eventDay = DateUtil.toCalendar(event.getEvent_s_date()).get(Calendar.DATE);
_
動作しているように見えますが、見た目は醜いです。私の質問は、これを最善の方法でリファクタリングしたかどうかです。そうでない場合、どのようにリファクタリングしますか? Beanに保存されている日付の日番号が必要です。
DateUtilsにメソッドを追加してクリーンアップしました
eventDay = DateUtil.getIntDate(event.getEvent_s_date());
_public static int getIntDate(Date date) {
return DateUtil.toCalendar(date).get(Calendar.DATE);
}
_
大丈夫だよ。私にとって、醜いビットはメソッド名の下線です。 Javaアンダースコアが付いている慣習はそこにあります。
joda-time をご覧ください。これは、日付/時刻を操作するための事実上の標準です。
new DateTime(date).getDayOfMonth();
Calendar cal = Calendar.getInstance();
cal.setTime(date);
Integer date = cal.get(Calendar.DATE);
/*Similarly you can get whatever value you want by passing value in cal.get()
ex DAY_OF_MONTH
DAY_OF_WEEK
HOUR_OF_DAY
etc etc..
*/
Java.util.Calendar API を確認できます。
Java 8以降では、非常に簡単です。LocalDate
クラスがあり、getDayOfMonth()
メソッドがあります:
LocalDate date = now();
int dayOfMonth = date.getDayOfMonth();
Java.time クラスを使用すると、これらのサードパーティライブラリは不要になります。 LocalDate
および LocalDateTime
について読むことをお勧めします。
よりエレガントな日付/時刻APIが必要な場合は、 Joda Time を使用します。