java 기초 공부 내용 정리(java.util 패키지- currentTimeMillis, Calendar, Date)

홍준성·2022년 6월 3일
0

java 기초 공부

목록 보기
27/39

java.util패키지

java.util패키지는 java프로그램에 유용한 클래스들을 모아둔 것

시간처리

java에서는 시간에 대한 처리를 할 수 있도록 java.util 패키지 내에서 Calendar 클래스와 Date 클래스, SimpleDataFormat 클래스를 제공한다.

System.currentTimeMills()

  • 현재 운영체제의 시각을 long 타입으로 반환
  • 1970년 1월 1일을 기준으로 현재까지 시간이며 1/1000초 단위까지 환산
	public static void main(String[] args) {
		long start = System.currentTimeMillis();
		System.out.println("시작시간: "+start);
		int a = 0;
		for(int i=1;i<10000000;i++) {
			a++;
		}
		long end=System.currentTimeMillis();
		System.out.println("종료시간: " +end);
		System.out.println("걸린 작업 시간: " +(end-start));
	}
}

java.util.Calendar

Java에서 제공하는 날짜관리 클래스

  • 추상클래스이므로 직접 인스턴스 생성 불가
  • getInstance()메서드를 활용하여 객체 생성
  • 객체 사용 시마다 인스턴스 생성하는 것이 아니라, 하나의 인스턴스로 사용하는 방법(싱글 턴 패턴)
방법1
Calendar a = Calendar.getInstance(); //싱글턴 패턴

방법2
Calendar b = new GregorianCalendar();


	public static void main(String[] args) {
		Calendar a = Calendar.getInstance();
		
		int year = a.get(Calendar.YEAR);
		int month = a.get(Calendar.MONTH)+1; // 1월이 0으로 나오기 때문에 +1을 함
		int date = a.get(Calendar.DATE);
		
		System.out.println(year+"년 "+month+"월"+date+"일");
		
		System.out.println("이번주에서 몇 번째 일인지");
		System.out.println(a.get(Calendar.DAY_OF_WEEK));
		
		System.out.println("이번 년도에서 오늘이 몇 일째인가");
		System.out.println(a.get(Calendar.DAY_OF_YEAR));
		
		System.out.println("이번 달은 몇 일까지 있는가");
		System.out.println(a.getActualMaximum(Calendar.DATE));
	}
}
	public static void main(String[] args) {
		Calendar today = Calendar.getInstance();
		Calendar endOfYear = Calendar.getInstance();
		Calendar christmas=Calendar.getInstance();
		
		endOfYear.set(Calendar.MONTH, 11); // month: 12월
		endOfYear.set(Calendar.DATE, 31); // date: 31일
		
		long diff = endOfYear.getTimeInMillis()-today.getTimeInMillis();
		System.out.println("연말까지 남은 날:" + diff/(24*60*60*1000));
		
		christmas.set(2022, 11, 25); //2022년 12월 25일
		diff=christmas.getTimeInMillis()-today.getTimeInMillis();
		System.out.println("크리스마스까지 남은 날:" + diff/(24*60*60*1000));
	}
}

java.util.date

Date today = new Date();
System.out.println(today);

long, Calendar, Date간의 변환

//Calendar -> Date
Calendar calendar = Calendar.getInstance();
Date date = calendar.getTime();

//Date -> Calendar
calendar.setTime(date);

//Calendar -> long
long time = calendar.getTimeInMillis();

//long -> Calendar
calendar.setTimeInMillis(time);

SimpleDateFormat

날짜를 형식화하는 클래스

기호의미
y
M
d
E요일
a오전/오후
H시간
m
s
	public static void main(String[] args) {
		Date day = new Date();
		String patternKorea="yyyy-MM-dd";
		String patternUSA="MM-dd-yyyy";
		String patternUK="dd-MM-yyyy";
		String pattern1 = "E요일 HH시 mm분 ss초";
		
		SimpleDateFormat p1 = new SimpleDateFormat(patternKorea);
		SimpleDateFormat p2 = new SimpleDateFormat(patternUSA);
		SimpleDateFormat p3 = new SimpleDateFormat(patternUK);
		SimpleDateFormat p4 = new SimpleDateFormat(pattern1);
		
		System.out.println("현재날짜:"+day);
		System.out.println("한국형식(년,월,일):"+p1.format(day));
		System.out.println("미국형식(월,일,년):"+p2.format(day));
		System.out.println("영국형식(일,월,년):"+p3.format(day));
		System.out.println("pattern1:"+p4.format(day));
	}
}
profile
준성이의 개발자 공부 velog

0개의 댓글