Java date클래스 보니까 거의 deprecated던데 아예 안쓰는게 좋나요?

조회수 13226회

생성자 중에 보니까 현재 시간을 구하는

Date date = new Date();

말고는 다 deprecated더라구요. 그렇다면 Calendar만 쓰라고 하면 되지 왜 저것만 남겨놨을까요?

3 답변

  • 좋아요

    1

    싫어요
    채택 취소하기

    Date클래스 자체를 deprecated시키려는게 아니고 다국적으로 사용하기 부적합한 생성자와 메소드들을 deprecated시킨 것으로 보입니다.

    • 그런데 메소드들을 보면 원하는 날짜로 Date객체를 생성할 수 없을 경우 쓸만한게 없습니다. 그걸 보면 쓰지 말라는 의미인것 같아 보이는데요... 정토드 2016.2.10 09:51
    • 그런 경우 문서를 보면 공식적으로 Calendar 나 GregorianCalendar 로 Date객체를 생성하라고 되어있는데요. 개인적인 생각으로는 달력류의 클래스에서 날짜를 만드는 방식이 좀 더 자연스럽기 때문이 아닐까 합니다. http://docs.oracle.com/javase/8/docs/api/java/util/Date.html 유연수 2016.2.10 16:37
  • 안드로이드에서 Date는 API1 이후에 거의 Deprecated됐고 Date를 대신하기 위해 Date의 기본적인 메소드를 거의 Calendar클래스에서 제공해줍니다.

    int     getDate() 메소드는 Calendar.get(Calendar.DATE)로
    
    int     getDay() 메소드는 Calendar.get(Calendar.DAY_OF_WEEK)으로
    
    int     getHours()메소드는 Calendar.get(Calendar.HOUR_OF_DAY) 로
    
    int     getMinutes()메소드는 Calendar.get(Calendar.MINUTE)로
    int     getMonth() 메소드는 Calendar.get(Calendar.MONTH) 로
    int     getSeconds() 메소드는 Calendar.get(Calendar.SECOND)로 대신해서 쓰시면 됩니다.
    
    set~~() 메소드도 마찬가지로 Calendar의 set메소드를 이용하시면 됩니다.
    void setDate() -> Calendar.set(Calendar.DATE, day)
    
    
  • deprecated 되었다고해서 못쓰게해버리면, 이미 배포되어서 서비스가되고있는 프로그램들에 영향이 가기 때문입니다.

    새로운버전에 새로운함수가 나오더라도 기존것은 사용가능해야 합니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)