Java date클래스 보니까 거의 deprecated던데 아예 안쓰는게 좋나요?
조회수 13282회
생성자 중에 보니까 현재 시간을 구하는
Date date = new Date();
말고는 다 deprecated더라구요. 그렇다면 Calendar만 쓰라고 하면 되지 왜 저것만 남겨놨을까요?
3 답변
-
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
되었다고해서 못쓰게해버리면, 이미 배포되어서 서비스가되고있는 프로그램들에 영향이 가기 때문입니다.새로운버전에 새로운함수가 나오더라도 기존것은 사용가능해야 합니다.
댓글 입력