Beny's Study
22_7. [강의] 날짜 관련 본문
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초
'[JAVA] > 10. API' 카테고리의 다른 글
22_6. [강의] 다형성1 예제 (0) | 2022.05.29 |
---|---|
22_5. [강의] buffer와 builder 속도 테스트하는 코드 (0) | 2022.05.29 |
22_4. [강의] String메소드 꼭 알고있어야 할것 (0) | 2022.05.29 |
22_3. [강의] String 메소드 (0) | 2022.05.29 |
22_2. [강의] API 파싱 (영화정보) (0) | 2022.05.29 |