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


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

Date date = new Date();

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

  • 2016년 02월 09일에 작성됨
    루비와 파이썬을 좋아합니다. 새로운 언어를 배우는것도 좋아해요. 요즘은 개발은 주로 레일즈 사이트 수정하는 일을 하고, 예전에는 모바일 게임도 조금 만들어 봤습니다.

조회수 983


Banner slack 2x iegsyt

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