Beny's Study

22_7. [강의] 날짜 관련 본문

[JAVA]/10. API

22_7. [강의] 날짜 관련

76beny 2022. 5. 29. 20:34
Date date = new Date();
System.out.println(date);//오늘날짜 출력하기

System.out.println(date.getTime());//오늘 날짜를 long의 ms까지 가져오는 방법

System.out.println(System.currentTimeMillis());//우와 같은 문법!(호출되는 시스템시간 문법)
//1970년도부터 오늘까지 흐른 초단위 시간
//시간동기화 프로토콜 : SNTP(simple network time protocol)

[출력]

Sun May 29 20:21:33 KST 2022
1653823293783
1653823293801

 


Date date2 = new Date(System.currentTimeMillis());
System.out.println(date2);

[출력]

Sun May 29 20:23:50 KST 2022

 


SimpleDateFormat sdf = new SimpleDateFormat("YYYY년 MM월 dd일 E hh시 mm분 ss초");
//원하는 양식 선언

String dateStr = sdf.format(date2);//date2를 sdf에 포맷해서  dateStr에 저장!
System.out.println(dateStr);

SimpleDateFormat

Date format을 통해 원하는 양식으로 변경.(SimpleDateFormat)

 

MM과 mm의 대소문자 비교 필요함
MM은 월, mm은 분

 

[출력]

2022년 05월 29일 일 08시 24분 43초

 


Calendar cal = Calendar.getInstance();
System.out.println(cal.toString().replace(",", ",\n"));

Calendar : 날짜를 다루는 클래스

특징 : 자체 생성이 불가능 하다!

 

Calendar cal = new Calendar; => 에러뜸( 추상클래스라서!)

 

Calendar.getInstance() 

대신 생성해주는 Calender의 메서드!

 

[출력]

java.util.GregorianCalendar[time=1653823580154,
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=2022,
MONTH=4,
WEEK_OF_YEAR=23,
WEEK_OF_MONTH=5,
DAY_OF_MONTH=29,
DAY_OF_YEAR=149,
DAY_OF_WEEK=1,
DAY_OF_WEEK_IN_MONTH=5,
AM_PM=1,
HOUR=8,
HOUR_OF_DAY=20,
MINUTE=26,
SECOND=20,
MILLISECOND=154,
ZONE_OFFSET=32400000,
DST_OFFSET=0]

 


System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.MONTH)+1);
System.out.println(cal.get(Calendar.DATE));
System.out.println(cal.get(Calendar.AM_PM));
System.out.println(cal.get(Calendar.HOUR));
System.out.println(cal.get(Calendar.MINUTE));
System.out.println(cal.get(Calendar.SECOND));

[출력]

2022
5
29
1
8
27
49

 


String dateStr2  = sdf.format(cal.getTimeInMillis());
System.out.println(dateStr2);

[출력]

2022년 05월 29일 일 08시 29분 35초

 


cal.set(1997, 7-1, 20);
System.out.println(sdf.format(cal.getTime()));

* cal.set(년,월,일)

날짜 변경하는 메서드

 

괄호안에 월 부분이 7-1 인 이유는? 월 시작하는 개념이 좀 달라서 0월부터 시작한다고 생각하면 됨.

 

[출력]

1997년 07월 20일 일 08시 30분 35초

 


GregorianCalendar gc = new GregorianCalendar(2001,6-1,10);
System.out.println(sdf.format(gc.getTime()));

GregorianCalendar(년,월,일)

날짜를 지정하는 방법, GregorianCalendar를 권장

 

[출력]

2001년 06월 10일 일 12시 00분 00초

 


System.out.println(gc.after(cal));
System.out.println(cal.before(gc));

* 날짜간 비교

 

[출력]

true
true

 


System.out.println( cal.getTimeInMillis() - gc.getTimeInMillis());
System.out.println( sdf.format(cal.getTimeInMillis() - gc.getTimeInMillis()));

* 날짜간 연산 가능

 

[출력]

-122700329034
1966년 02월 11일 금 05시 34분 30초