코딩 기록들
[Java Programming] 13.2 Calendar 본문
Calendar
자바는 날짜와 시간을 처리할 수 있는 3가지 클래스를 제공
1. Date
2. Calendar
3. LocalDateTime (Java 1.8에서 추가)
Calendar
- 자바 1.8 미만에서 사용
- 날짜를 제어하는 클래스
- 레퍼런스 타입이지만, 사용할때 Calendar.getInstance() 라고 작성한다
--> 유일한 인스턴스이므로 new하지않고 Calendar(".")getInstance() 로 사용함
- 원래의 인스턴스에서 복제된 인스턴스를 준다
- Calendar이 돌려주는 '월' 은 0부터 시작함 -> Month를 가져올때는 +1 해서 가져와야함 ex) get(Calendar.MONTH) + 1
- Calendar이 돌려주는 요일은 숫자로 돌려준다 : 1(일요일) ~ 7(토요일)
- SimpleDateFormat : 포맷이 정해져 있음 ( yyyy-MM-dd HH:mm:ss ) -> 대문자HH : 24시로 가져오고, hh: 12시로 가져옴
- set(년, 월, 일) -> ex) set(2022, 01, 01) = 2022년 2월 1일
Calendar 이용해 날짜 변경하기
public class CalendarPPT {
public static void main(String[] args) {
// Calendar 인스턴스 가져오기
Calendar nowCal = Calendar.getInstance();
// 현재 연,월,일 시,분,초 구하기
System.out.println(nowCal.get(Calendar.YEAR));
System.out.println(nowCal.get(Calendar.MONTH)+1);
System.out.println(nowCal.get(Calendar.DAY_OF_MONTH));
System.out.println(nowCal.get(Calendar.HOUR));
System.out.println(nowCal.get(Calendar.MINUTE));
System.out.println(nowCal.get(Calendar.SECOND));
//1일요일 ~ 7토요일
System.out.println(nowCal.get(Calendar.DAY_OF_WEEK));
//현재 연,월,일만 문자열로 가져오기 -> 현재 날짜 / 시간
Date now = Calendar.getInstance().getTime();
System.out.println(now);
//날짜포맷 지정
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//날짜를 포맷에 맞춰 변경
String formatDate = format.format(now);
//출력
System.out.println(formatDate);
//Calendar 이용해 날짜 변경
nowCal.set(2022,01,01); //날짜지정
nowCal.add(Calendar.DAY_OF_MONTH, 10); //날짜에 10일 더하기
nowCal.add(Calendar.DAY_OF_MONTH, -20); //날짜에서 20일 빼기
}
날짜변경 2가지 방법
// 날짜 변경 방법 1
Calendar past = Calendar.getInstance();
past.set(Calendar.YEAR, 1970);
past.set(Calendar.MONTH, 0);
past.set(Calendar.DAY_OF_MONTH, 1);
past.set(Calendar.HOUR, 0);
past.set(Calendar.MINUTE, 0);
past.set(Calendar.SECOND, 0);
//날짜 변경 방법2
past.set(2022, 3-1, 1, 1, 50, 17);
지역변수에 한해서 type추론(var) 사용할 수 있다
- 위의 코드에서 ex) Calendar nowDateTime -> var nowDateTime 으로 사용 가능
- 파라미터, 멤버변수에는 var 사용 못함(자바10부터 가능)
'Java' 카테고리의 다른 글
[Java Programming] 12.2 NIO (Java1.8 이후 File I/O ) , 재귀호출 (0) | 2024.02.02 |
---|---|
[Java Programming] 13.1 Enum (0) | 2024.02.02 |
[Java Programming] 12.1 File I/O (0) | 2024.02.01 |
[Java Programming] 11.2 컬렉션 (ListArray, Map, HashMap, set) (1) | 2024.02.01 |
[Java Programming] 11.1 제네릭 (2) | 2024.01.31 |