728x90

날짜 형식

Date

 

밀리초 단위로 현재시간을 나타내는 클래스

 

예전에 많이 쓰였지만 대부분의 기능이 중요도가 떨어져 주로 사용되지 않는다.

import 필요

 

ex)

Date date = new Date();				//현재시간 (요일, 월, 일, 시간 KST(한국표준시), 년도)
Date date2 = new Date(100, 7, 14);		//특정날짜의 월, 요일 (년도(1900+), 월(1+), 일(0+))
        
System.out.println(date);
System.out.println(date.getDay());		//요일 0 ~ 6 (일 ~ 토)
System.out.println(date.getHours());
System.out.println(date.getMinutes());
System.out.println(date.getSeconds());
System.out.println(date2);

[실행결과]

Wed Jul 14 11:58:33 KST 2021
Mon Aug 14 00:00:00 KST 2000
3
11
58
33


예제 1.

<남은 시간 계산>

  • 올해 크리스마스까지 며칠 남았는지 계산하고 몇요일인지 출력하기
Date date = new Date();					//현재 시간
Date xMas = new Date(121, 11, 25);			//올해 크리스마스

System.out.println(date.getTime());			//date까지의 유닉스 시간
System.out.println(xMas.getTime());			//xMas까지의 유닉스 시간
		
long xMasT = xMas.getTime() - date.getTime();		//올해 크리스마스까지의 시간 - 현재시간
System.out.println(xMasT); 
		
long result = xMasT / (1000 * 60 * 60 * 24);		//밀리세컨드를 일로 바꾸기 ( / (초 * 분 * 시 * 일))
		
System.out.println("이번 크리스마스까지 " + result + "일 남았습니다.");
		
int day = xMas.getDay();

switch (day) {
case 0:
	System.out.println("일요일 입니다.");
	break;

case 1:
	System.out.println("월요일 입니다.");
	break;
			
case 2:
	System.out.println("화요일 입니다.");
	break;
			
case 3:
	System.out.println("수요일 입니다.");
	break;
			
case 4:
	System.out.println("목요일 입니다.");
	break;
			
case 5:
	System.out.println("금요일 입니다.");
	break;
			
default:
	System.out.println("토요일 입니다.");
	break;
	}
  • getTime( ) : 생성된 Date객체의 유닉스 시간을 가져오는 메소드
    반환값 : 밀리초(ms)
  • 유닉스 시간 : 
    1970년 1월 1일 00:00:00 협정세계시(UTC)로부터의 경과 시간을 초로 환산하여 정수로 나타낸 것

[실행결과]

1626232081987
1640358000000
14125918013
이번 크리스마스까지 163일 남았습니다.
토요일 입니다.


Calendar

 

달력 조작을 위한 메서드를 담은 추상 클래스

 

Calendar에 있는 메소드를 사용하기 위해서는 getInstance( ) 를 사용해야 한다.

import 필요

 

ex)

Calendar cal = Calendar.getInstance();
Date date = cal.getTime();

System.out.println(cal);					//cal 의 속성
System.out.println(date); 					//현재 시간

System.out.println(cal.get(Calendar.YEAR)); 			//년            
System.out.println(cal.get(Calendar.MONTH) + 1); 		//월 (월만 0부터 시작)
System.out.println(cal.get(Calendar.DATE)); 			//일
System.out.println(cal.get(Calendar.HOUR)); 			//시
System.out.println(cal.get(Calendar.MINUTE)); 			//분
System.out.println(cal.get(Calendar.SECOND)); 			//초

System.out.println("================");

System.out.println(cal.get(Calendar.DAY_OF_WEEK)); 		//요일 (일요일부터 1로 시작)
System.out.println(cal.get(Calendar.AM_PM));			//오전, 오후 (0, 1)	
System.out.println(cal.get(Calendar.HOUR_OF_DAY));		//24시간 표기		
System.out.println(cal.getActualMaximum(Calendar.DATE));	//이번 달의 마지막 날짜
System.out.println(cal.get(Calendar.DAY_OF_WEEK_IN_MONTH));	//이번 달의 몇번째 같은 요일인가
		
long longTime = cal.getTimeInMillis();				//밀리세컨드로 계산한 cal 까지의 유닉스 시간
System.out.println(longTime);

[실행결과]

java.util.GregorianCalendar[time=1626187455212,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Seoul",offset=32400000,dstSavings=0,useDaylight=false,transitions=30,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2021,MONTH=6,WEEK_OF_YEAR=29,WEEK_OF_MONTH=3,DAY_OF_MONTH=13,DAY_OF_YEAR=194,DAY_OF_WEEK=3,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=11,HOUR_OF_DAY=23,MINUTE=44,SECOND=15,MILLISECOND=212,ZONE_OFFSET=32400000,DST_OFFSET=0]
Tue Jul 13 23:44:15 KST 2021
2021
7
13
11
44
15
================
3
1
23
31
2
1626187455212


예제 1.

<나이 계산>

  • 출생년도 입력
  • 나이 = 현재 년도 - 입력받은 년도 + 1
Calendar cal = Calendar.getInstance();
Scanner sc = new Scanner(System.in);
								
System.out.println("출생 년도를 입력해주세요.");
				
int input = sc.nextInt();			
int result = cal.get(Calendar.YEAR) - input + 1;
				
System.out.println("당신의 나이는 " + result + "살 입니다.");
				
sc.close();

[실행결과]

출생 년도를 입력해주세요.
1995
당신의 나이는 27살 입니다.

예제 2.

<현재시간 출력>

  • 현재 시간을 출력하는 프로그램
  • 출력 예시 : 2021년 1월 1일 금요일 오전 11시 11분 11초 입니다.
Calendar cal = Calendar.getInstance(); 

int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH) + 1;
int date = cal.get(Calendar.DATE);
int day_of_week = cal.get(Calendar.DAY_OF_WEEK);
int am_pm = cal.get(Calendar.AM_PM);
int hour = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
int second = cal.get(Calendar.SECOND);
		
String weekstr = "";
switch (day_of_week) {
case 1:
	weekstr = "일";
	break;

case 2:
	weekstr = "월";
	break;
			
case 3:
	weekstr = "화";
	break;
			
case 4:
	weekstr = "수";
	break;
			
case 5:
	weekstr = "목";
	break;
			
case 6:
	weekstr = "금";
	break;
			
default:
	weekstr = "토";
	break;
}
		
String am_pmstr = am_pm == 0 ? "오전" : "오후";
		
System.out.println(year + "년 " + month + "월 " + date + "일 " + weekstr + "요일 " 
		+ am_pmstr + hour + "시 " + minute + "분 " + second + "초 입니다.");

[실행결과]

2021년 7월 14일 수요일 오전1시 8분 59초 입니다.


SimpleDateFormat

 

Date 클래스에서 정의한 객체를 자신이 원하는 방식으로 출력을 할 수 있게 해주는 클래스

 

필요한 부분만을 가져올 수 있기 때문에 매우 편리하게 사용할 수 있다.

import 필요

 

날짜 표현방식 표 :

출처 : https://bvc12.tistory.com/168


ex)

Date date = new Date();
		
SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 E요일 a hh시 mm분 ss초 "); 

System.out.println(sdf);
System.out.println(sdf.format(date));

[실행결과]

java.text.SimpleDateFormat@95fa6916
2021년 07월 14일 수요일 오전 12시 07분 33초 

 

 

 

 

'JAVA' 카테고리의 다른 글

MessageFormat  (0) 2021.07.14
currentTimeMillis  (0) 2021.07.14
동적 가변 배열 (DynamicArray)  (0) 2021.07.13
배열 복사 (ArrayCopy)  (0) 2021.07.13
isDigit  (0) 2021.07.11

+ Recent posts