#Java - 형변환 ```java // 1. Calendar To Date Calendar calendar = Calendar.getInstance(); // 추상 클레스이므로 new로 생성 불 Date date = new Date(clendar.getTimeInMillis()); // 2. Date to Calendar Date date = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); // 3. String to Date SimpleDateFormat simple_format = new SimpleDateFormat("yyyy.MM.dd HH:mm"); String timeString = "2021.07.14 23:39"; Date date = null; try{ date = simple_format.parse(timeString); } catch (ParseException e) { e.printStackTrace(); } // 4. String to Calendar // String -> Date -> 2번(Date to Calendar) 순 SimpleDateFormat simple_format = new SimpleDateFormat("yyyy.MM.dd HH:mm"); String timeString = "2021.07.14 23:39"; Date date = null; try{ date = simple_format.parse(timeString); } catch (ParseException e) { e.printStackTrace(); } Calendar calendar = Calendar.getInstance(); calendar.setTime(date); // Calendar to String Date kstDate = new Date(cal.getTimeInMillis()); String strInTmKst = simple_format.format(kstDate); ``` - Calendar 일시 가공 ```java // 현재 시간에 연산 Calendar cal1 = Calendar.getInstance(); cal1.add(Calendar.DATE, 6); // 일 계산 cal1.add(Calendar.MONTH, 4); // 월 연산 cal1.add(Calendar.DATE, -3); // 빼고 싶다면 음수 입력 Date date = new Date(cal1.getTimeInMillis()); System.out.println("현재시간 : " + new Date()); System.out.println("연산시간 : " + date); // 특정 시간에 연산 String date_str = "2021-03-01 11:11:11"; SimpleDateFormat transFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = transFormat.parse(date_str); Calendar cal1 = Calendar.getInstance(); cal1.setTime(date); // 시간 설정 cal1.add(Calendar.YEAR, 2); // 년 연산 cal1.add(Calendar.MONTH, 4); // 월 연산 cal1.add(Calendar.DATE, 4); // 일 연산 cal1.add(Calendar.HOUR_OF_DAY , 4); // 시간 연산 cal1.add(Calendar.MINUTE, 5); // 분 연산 cal1.add(Calendar.SECOND, 12); // 초 연산 System.out.println("설정시간 : " + date); System.out.println("연산시간 : " + new Date(cal1.getTimeInMillis())); // 서로 다른 2개의 시간 연산 String date_str1 = "2021-01-01 11:11:11"; String date_str2 = "2000-03-01 01:12:12"; SimpleDateFormat transFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date1 = transFormat.parse(date_str1); Date date2 = transFormat.parse(date_str2); Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); // 시간 설정 cal1.setTime(date1); cal2.setTime(date2); // 날짜 연산 cal1.add(Calendar.MONTH , cal2.get(Calendar.MONTH) + 1); // 월 더하기 - get(Calendar.MONTH)의 결과값이 0~11 이기 때문에 1을 더한다 cal1.add(Calendar.DATE, cal2.get(Calendar.DATE)); // 일 더하기 cal1.add(Calendar.HOUR_OF_DAY, cal2.get(Calendar.HOUR_OF_DAY)); // 시간 더하기 System.out.println("date1 : " + date1); System.out.println("date2 : " + date2); System.out.println("연산시간 : " + new Date(cal1.getTimeInMillis())); // Calendar 속성 값 참고 System.out.println("현재 시간을 얻은 후, 이 중에서 자신이 필요한 부분만 추출해야한다. \n"); System.out.println("1) 년도 YEAR : " + cal.get(Calendar.YEAR) + " 년"); System.out.println("2) 월 MONTH : " + (cal.get(Calendar.MONTH) + 1) + " 월 (★ 인덱스 상 0이 1월이기 때문에 +1을 해줘야함)"); System.out.println("3) 일 DATE : " + cal.get(Calendar.DATE) + " 일"); System.out.println("4) 올해 중 몇일째 DAY_OF_YEAR : " + cal.get(Calendar.DAY_OF_YEAR)); System.out.println("5) 이번 달 중 몇일째 DAY_OF_MONTH : " + cal.get(Calendar.DAY_OF_MONTH)); System.out.println("6) 이번 주 중 몇일째 DAY_OF_WEEK : " + cal.get(Calendar.DAY_OF_WEEK) + " (★한 주는 일요일부터 시작한다.)"); System.out.println("7) 이번 달 중, 몇번째 요일 DAY_OF_WEEK_IN_MONTH : " + cal.get(Calendar.DAY_OF_WEEK_IN_MONTH)); System.out.println(); System.out.println("8) 12시간 기준 시간(HOUR) : " + cal.get(Calendar.HOUR) + " 시"); System.out.println("9) 24시간 기준 시간 HOUR_OF_DAY : " + cal.get(Calendar.HOUR_OF_DAY) + " 시"); System.out.println("10) 오전, 오후 AM_PM : " + cal.get(Calendar.AM_PM) + " (오전은 0, 오후는 1 리턴)"); System.out.println("11) 분 MINUTE : " + cal.get(Calendar.MINUTE) + "분"); System.out.println("12) 초 SECOND : " + cal.get(Calendar.SECOND) + "초"); System.out.println(); System.out.println("이번 주 월요일? MONDAY : " + cal.get(Calendar.MONDAY)); System.out.println("이번 주 화요일? TUESDAY : " + cal.get(Calendar.TUESDAY)); // 이상 System.out.println("이번 주 수요일? WEDNESDAY : " + cal.get(Calendar.WEDNESDAY)); // 이상 System.out.println("이번 주 목요일? THURSDAY : " + cal.get(Calendar.THURSDAY)); System.out.println("이번 주 금요일? FRIDAY : " + cal.get(Calendar.FRIDAY)); // 이상 System.out.println("이번 주 토요일? SATURDAY : " + cal.get(Calendar.SATURDAY)); // 이상 System.out.println("이번 주 일요일? SUNDAY : " + cal.get(Calendar.SUNDAY)); // 이상 // 시간 차이 연산 ```