상세 컨텐츠

본문 제목

Java - Date, Calendar, SimpleDateFormat

개발/Java

by 뉴에이스 2018. 9. 28. 15:44

본문

날짜 정보를 반환하는 클래스 
: Date     - 1.0버전부터 제공, Calendar로 대부분의 기능 사용을 권장함..
: Calendar - 추상개념, 직접 생성이 불가능, 자식 클래스를 이용해서 얻어야 한다.
 
날짜 정보를 원하는 형태의 문자열로 처리(날짜 -> 문자열)
문자열을 날짜 객체로 변환 시켜주는 클래스(문자열 -> 날짜)
: SimpleDateFormat
   
https://docs.oracle.com/javase/8/docs/api/index.html
사이트에서 Date 관련 생성자 확인시  Deprecated가 기재된 항목은 더이상 업데이트 되지 않아 사용을 권장하지 않음
Calendar 클래스로 대체사용 권장

 

소스

 

public static void main(String[] args) {
	Calendar c = Calendar.getInstance();
	
	// c가 가지고 있는 날짜와 정보와 관련된 최대 날짜
	int val = c.getActualMaximum(Calendar.DAY_OF_MONTH);
	System.out.println(val);
	
	// c가 가지고 있는 날짜 정보와 상관없이 필드에 해당하는 최대 날짜
	val = c.getMaximum(Calendar.DAY_OF_MONTH);
	System.out.println(val);

	// 현재 월에서 다음달로 설정하고자 할때
	// 상대적인 값을 기준으로 바꾸는 경우..
	c.set(Calendar.MONTH, c.get(Calendar.MONTH)+1);
	// 다음달
	c.add(Calendar.MONTH, 1);
	// 이전달
	c.add(Calendar.MONTH, -1);

	// Date 객체의 정보를 Calendar 객체에 설정하기
	// Date 객체를 이용한 설정
	Date d = new Date();
	c.setTime(d);
	
	// 밀리세컨 시간 정보(long 값)를 이용한 설정
	long dTime = d.getTime();
	c.setTimeInMillis(dTime);
	
	// Date -> Calendar : setTime();
	// Calendar -> Date 객체 변환
	Date cDate = c.getTime();
	
	
	
} 

 

결과

 

30
31

 

소스

 

public static void main(String[] args) {
	Calendar c = Calendar.getInstance();

	// 현재 시간 정보를 아래와 같이 보여주세요..
	// 2018-02-22 11:56:11
	System.out.printf("%d-%02d-%02d %02d:%02d:%02d\n", c.get(Calendar.YEAR), c.get(Calendar.MONTH)+1, c.get(Calendar.DATE), c.get(Calendar.HOUR)+12, c.get(Calendar.MINUTE), c.get(Calendar.SECOND));
	
	// SimpleDateFormat 날짜정보에 대한 처리를 편하게 할 수 있다
	// 날짜객체, 문자열(날짜 패턴)
	/*
		패턴문자
		y : 년도
		M : 월
		d : 일
		H : 시 (24시간 기준)
		h : 시 (12시간 기준)
		m : 분
		s : 초
		yyyy-MM-dd HH:mm:ss
		yyyy-MM
		HH:mm, hh:mm
	*/
	
	String pattern = "yyyy-MM-dd HH:mm:ss";
	SimpleDateFormat sdf = new SimpleDateFormat(pattern);
	
	// 날짜 -> 문자열 변환
	String result = sdf.format(new Date());
	System.out.println(result);
	
	sdf = new SimpleDateFormat(DateUtil.COMMON_PATTERN);
	
	// 문자열 -> 날짜 변환
	pattern = "yyyy-MM-dd";
	try {
		Date d = sdf.parse("2018-11-11");
		System.out.println(d);
	}
	catch (ParseException e) {
		e.printStackTrace();
	}
} 

 

결과

 

2018-09-28 15:43:31
2018-09-28 15:43:31
Sun Nov 11 00:00:00 KST 2018

 

'개발 > Java' 카테고리의 다른 글

관련글 더보기

댓글 영역