1. System.currentTimeMilis()
what?
System 클래스의 currentTimeMilis() 메서드
현재 운영체제의 시간을 long 타입으로 반환
1970년 1월 1일을 기준으로 현재까지의 시간. 밀리초(1/1000) 단위로 환산해서 보여줌
how?
//시작 시각 측정
long start System.currentTimeMilis();
System.out.println("시작 시각: " + start);
//실행부
int a = 0;
for(int i = 0; i<10000000; i++){
a++;
}
//종료 시각 측정
long end = System.currentTimeMilis();
System.out.println("종료 시각: " + end);
//걸린 시간 측정
System.out.println("걸린 작업 시간: " + (end-start));
이때 start와 end, end-start는 밀리초 단위로 출력된다.
2. java.util.Calendar
what?
날짜를 다루는 클래스
how?
싱글턴 패턴 사용, getInstance() 메서드로 GregorianCalendar 인스턴스를 생성해야 함(추상 클래스이기 때문에 직접 생성 x)
//싱글턴 패턴: getInstance()
Calendar calendarA = Calendar.getInstance();
System.out.println(calendarA.toString());
//GregorianCalendar 인스턴스 직접 생성
Calendar calendarB = new GregorianCalendar();
System.out.println(calendarB.toString());
//toString: 인스턴스의 필드 모두 출력
//두 방법 모두 생성되는 인스턴스 같음
1)get()으로 필드 가져오기
YEAR, MONTH, DATE, DAY_OF_WEEK, DAY_OF_YEAR, DATE, ...
※MONTH는 0부터 시작(0: 1월, 2: 1월, ... 11: 12월)
※요일도 INT로 반환, 0부터 시작(1: 일요일, 2: 월요일, 7: 토요일)
Calendar calendarA = Calendar.getInstance();
int year = calendarA.get(Calendar.YEAR);
int month = calendarA.get(Calendar.MONTH);
int date = calendarA.get(Calendar.DATE);
System.out.println(year + "년 " + month + "월 " + date + "일");
//요일
System.out.println(calendarA.get(Calendar.DAY_OF_WEEK));
//이번 년도에서 오늘이 몇 번째 날인지 출력
System.out.println(calendarA.get(Calendar.DAY_OF_YEAR));
//이번달이 며칠까지 있는지 출력
System.out.println(calendarA.getActualMaximum(Calendar.DATE));
2)set()으로 지정하기
set(변경 대상 항목, 바꿀 값)
set(년, 월, 일);
//D-day 구하기
//인스턴스 생성
Calendar today = Calendar.getInstance();
Calendar endOfYear = Calendar.getInstance();
Calendar Christmas = Calendar.getInstance();
//12월 31일 설정
//날짜 지정: 월일 따로 설정
endOfYear.set(Calendar.MONTH, 11);
endOfYear.set(Calendar.DATE, 31);
//D-day
long idff = endOfYear.getTimeInMIlis() - today.getTimeInMilis();
System.out.println("연말까지 남은 날: " + diff/(24*60*60*1000) + "일");
//크리스마스 설정: 한번에 설정
Christmas.set(2024, 11, 25);
//D-day
diff = Christmas.getTimeInMilis() - today.getTimeInMilis();
System.out.println("크리스마스까지 남은 날: " + diff/(24*60*60*1000) + "일");
3. java.util.Date
what?
JDK 1.0부터 제공된 클래스.
대부분의 메서드와 생성자가 사용되지 않게 됨
how?
Date today = new Date();
System.out.println(today);
//Wed Apr 03 15:44:53 KST 2024 출력
//long 타입(밀리초)을 파라미터로 받아서 인스턴스 생성
long miliSec = System.currentTimeMilis();
Date today2 = new Date(miliSec);
System.out.println(today2);
////Wed Apr 03 15:44:53 KST 2024 출력
long 타입, Calendar 타입, Date 타입은 상호 변환 가능
//Calendar -> Date
//Date 타입 변수에 Calendar 클래스의 Time 대입
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();
System.out.println(date);
//Date -> Calendar
//Calendar 클래스의 Time에 Date 타입 변수 대입
calendar.setTime(date);
//Calendar -> long
//Calendar 클래스의 TimeInMilis 변수 long타입으로 가져옴
long time = calendar.getTimeInMilis();
System.out.println(time);
//long -> Calendar
//long 타입 변수 Calendar 클래스의 timeInMilis 변수로 설정
calendar.setTimeInMilis(time);
'Java' 카테고리의 다른 글
[Java] 기본 API 클래스⑤ BigDecimal 클래스 (0) | 2024.04.03 |
---|---|
[Java] 기본 API 클래스③ Random (0) | 2024.04.03 |
[Java] 기본 API 클래스① 문자열 클래스 (0) | 2024.04.02 |
[Java] 익명 클래스 (0) | 2024.04.02 |
[Java] 내부 클래스 (0) | 2024.03.31 |