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


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

Date date = new Date();

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

  • 2016년 02월 09일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 모바일 게임도 조금 만들어 봤습니다.

조회수 619


2 답변


좋아요
1
싫어요
채택취소하기

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

  • 2016년 02월 10일에 작성됨
    그렙에서 웹 프론트 개발을 하고 있습니다.

  • 그런데 메소드들을 보면 원하는 날짜로 Date객체를 생성할 수 없을 경우 쓸만한게 없습니다. 그걸 보면 쓰지 말라는 의미인것 같아 보이는데요...    정두식   2016.2.10 09:51     
  • 그런 경우 문서를 보면 공식적으로 Calendar 나 GregorianCalendar 로 Date객체를 생성하라고 되어있는데요. 개인적인 생각으로는 달력류의 클래스에서 날짜를 만드는 방식이 좀 더 자연스럽기 때문이 아닐까 합니다. http://docs.oracle.com/javase/8/docs/api/java/util/Date.html    Carlos Yoo   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)

  • 2016년 02월 10일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close