프로그래밍을 하다보면 날짜관련된 데이터를 관리해야할때가 있을것같다.
자바에서는 대표적으로사용적인 두가지의 클래스가있다
package 는 java.util 에있다.
Date 클래스
Date클래스는 자바가 처음만들어 지고나서부터 계속 사용중인 클래스이다.
하지만 다국적에서 사용하기가 많이불편하여 현재는 Deprecated 애너테이션으로 작성되어있다.
뜻은 사용은가능하지만 권장하지않음, 사용하지 말아달라는 권고사항이다.
@Deprecated
하지만 Date 클래스중 아직 Deprecated 안붙은 생성자도있다 .
기본생성자인 Date();
Date(Long l)
위의 두가지 생성자는 사용이가능하다
Date 클래스 사용법
// Date 클래스 임포트
import java.util.Date;
public class A_Date{
// Date() 생성
// 이렇게생성중이면 현재 오늘날짜로 생성된다.
Date d = new Date();
System.out.println("기본 생성자 (오늘 날짜) : " + d);
// 출력
// 기본 생성자 (오늘 날짜) : Wed Jun 02 14:48:37 KST 2021
// Date(long) -> 1970년 1월 1일 0시 0분 0초부터 경과한 날짜와 시간을 저장한 객체 생성
Date d2 = new Date(1234567890000L);
System.out.println("매개변수 생성자 (long형) : " + d2);
// 출력
// 매개변수 생성자 (long형) : Sat Feb 14 08:31:30 KST 2009
}
Date Setter/Getter
date 클래스의 set(값 설정), get(값 가져오기) 등의 메소드가있는데 Date 클래스는 Deprecated 이기때문에 사용안하는걸추천하지만 사용법을 간단하게 작성해보겠다.
// 1. Date 객체 생성
Date d = new Date();
// set()
d.setYear(2020 - 1900); // 년도설정
//00 빼는 이유는 Date의 Year 기본값이 1900으로
// 되어 있기 때문에 1900을 빼줘야 정상으로 세팅된다.
d.setMonth(5 - 1); // 월은 0~11 으로 세팅되어있음
d.setDate(15); // 일 설정
System.out.println("setter 이용해서 값 초기화 : " + date2);
// 출력
// setter 이용해서 값 초기화 : Tue May 15 14:48:37 KST 2018
//get()
System.out.println(date2.getYear() + 1900 + "년");
System.out.println(date2.getMonth() + 1 + "월");
System.out.println(date2.getDate() + "일");
// 출력
// 2018년
// 5월
// 15일
그만알아보자 ..
Calendar
Date 클래스와 똑같이 날짜 데이터를 사용할수있는 클래스이다.
캘린더는 JDK1.1부터 생성되어서 사용중이다.
Calendar 클래스는 생성자가 protected이기 때문에 new연산자를 통하여 객체를 생성하는것이 아니고, Calendar.getInstance() 메소드이용하여 생성하여야한다.
// Calendar c1 = new Calendar(); 호출x
Calendar c2 = Calendar.getInstance(); 호출o
Calendar 코드사용
Calendar cToday = Calendar.getInstance();
// get 메소드로 년월일시분초 추출
int year = cToday.get(Calendar.YEAR); // 년도
int month = cToday.get(Calendar.MONTH) + 1; // 월 0~11 반환
int date = cToday.get(Calendar.DATE); // 일
int ampm = cToday.get(Calendar.AM_PM); // 오전이면 0 오후면 1 반환
int hour = cToday.get(Calendar.HOUR); // 시간
int min = cToday.get(Calendar.MINUTE); // 분
int sec = cToday.get(Calendar.SECOND); // 초
String sAmpm = (ampm == Calendar.AM) ? "오전" : "오후"; // 0이면 오전 , 1이면 오후 String으로 반환
System.out.printf("%d년 %02d월 %02d일 %s %02d시 %02d분 %02d 초%n",year,month, date, sAmpm, hour, min, sec);
// 출력 (실행시간마다 출력값 다를수있음)
// 2021년 06월 02일 오후 03시 01분 49 초
SimpleDateFormat
데이터를 생성하고 출력할때 원하는형식으로 출력할수있게 도와주는 간편한 클래스!
// Date 객체 이용방법
// 1. Date 객체 생성
// 현재 년월일 : 2021년 06월 02일
Date d = new Date();
// 2. SimpleDateFormat 객체 생성
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); //년도-월-일
// 사용자가 출력하고 싶은 내용으로 수정가능
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy?MM?dd"); // 년도?월?일
// 3. SimpleDateFormat클래스의 format() 메소드 이용하여 호출
String str = sdf.format(d); //format에는 Date타입의 참조변수만 들어갈수있다.
System.out.println(str);
// 출력
// 2021년 06월 02일
// Calendar 객체 이용방법
// 1. Calendar 객체생성
Calendar c = Calendar.getInstance();
// 2. SimpleDateFormat 객체 생성
SimpleDateFormat s1 = new SimpleDateFormat("yyyy.MM.dd"); // 년도.월.일
// 3.포맷데이터형식으로 출력
// s1.format(c); //으로 작성하면 에러 format(Date) << 매개변수는 Date클래스 형식만받을수있음
// Calendar 으로 작석시
String str1 = s1.format(c.getTime()); //Date형식으로 변환해주는 getTime() 메소드 이용하여 출력
System.out.println(str1);
// 출력
// 2021.06.02
'프로그래밍 > JAVA' 카테고리의 다른 글
JAVA - I.O(입출력) > 기반 스트림 (2) | 2021.06.03 |
---|---|
JAVA - 예외처리 (0) | 2021.06.03 |
JAVA - String 클래스 (0) | 2021.05.31 |
JAVA - 객체(toString(), equals(), hashCode()) (0) | 2021.05.27 |
JAVA - 상속 (0) | 2021.05.26 |