代码之家  ›  专栏  ›  技术社区  ›  jeff

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

  •  21
  • jeff  · 技术社区  · 14 年前

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

    所以我把它改写成

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

    它看起来很有用,但看起来很难看。我的问题是,我重构这个是不是最好的方法?如果不是,你将如何重构?我需要一个豆子中存储的日期的日数。

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

    public static int getIntDate(Date date) {
        return DateUtil.toCalendar(date).get(Calendar.DATE);
    }
    
    4 回复  |  直到 14 年前
        1
  •  28
  •   Bozho    14 年前

    很好。对我来说,更难看的是方法名中的下划线。Java约定不喜欢下划线。

    你可能想看看 joda-time . 它是处理日期/时间的事实标准:

    new DateTime(date).getDayOfMonth();
    
        2
  •  20
  •   Brendan Green    9 年前
    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 .

        3
  •  4
  •   torina    6 年前

    使用Java 8和更高版本,这非常简单。有 LocalDate getDayOfMonth() 方法:

    LocalDate date = now();
    int dayOfMonth = date.getDayOfMonth();
    

    java.time 类不再需要那些第三方库。我建议你读一下 LocalDate LocalDateTime

        4
  •  0
  •   highlycaffeinated    14 年前

    如果您想要更优雅的日期/时间api,请使用 Joda Time .