Java Date getDate() 已弃用,重构为使用日历,但看起来很丑陋

2022-09-01 20:01:49

Eclipse警告我正在使用已弃用的方法:

eventDay = event.getEvent_s_date().getDate();

所以我把它重写为

eventDay = DateUtil.toCalendar(event.getEvent_s_date()).get(Calendar.DATE);

它似乎有效,但看起来很丑陋。我的问题是,我是否以最好的方式重构了这一点?如果没有,您将如何重构?我需要存储在豆中的日期的日期的日号。

我最终在我的DateUtils中添加一个方法来清理它

eventDay = DateUtil.getIntDate(event.getEvent_s_date());

public static int getIntDate(Date date) {
    return DateUtil.toCalendar(date).get(Calendar.DATE);
}

答案 1

没事的。对我来说,更丑陋的位是方法名称中的下划线。Java约定对那里的下划线不屑一顾。

你可能想看看joda-time。它是使用日期/时间的事实标准:

new DateTime(date).getDayOfMonth();

答案 2
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