반응형
Date 클래스
- 현재 날짜 객체를 생성할 때 사용
- 날짜 객체를 원하는 문자열 포맷으로 만들때만 주로 사용
- 날짜 정보를 각각 추출하는 것은 불가능하다
- import java.util.Date; 필요
SimpleDateFormat 클래스
- Date 객체를 원하는 날짜 포맷으로 만들어줌
- import java.text.SimpleDateFormat; 필요
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main04 {
public static void main(String[] args) {
Date today = new Date();
System.out.println(today); //국제표준시간으로 출력됨
//2024-08-12 시간:분:초
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sf.format(today));
}
}
실행결과)
Mon Aug 12 14:49:35 KST 2024 2024-08-12 14:49:35 |
Calendar 클래스
- 현재 날짜 객체를 얻어온 후 각 날짜의 정보를 추출할 수 있다
- import java.util.Calendar; 필요
- Calendar에서 월은 0이 1월이므로 +1씩 해줘야 정확한 월 정보가 나온다
import java.util.Calendar;
public class Main04 {
public static void main(String[] args) {
//java.util 패키지 안에 존재
Calendar calendar = Calendar.getInstance();
System.out.println(calendar);
//Calendar 객체를 통한 연도 정보 추출
int year = calendar.get(Calendar.YEAR);
System.out.println("연도:"+year);
//Calendar에서 월은 0이 1월이므로 +1씩 해줘야 정확한 월 정보가 나온다
int month = calendar.get(Calendar.MONTH) + 1;
System.out.println("월:"+ month);
int day = calendar.get(Calendar.DAY_OF_MONTH);
System.out.println("일:" + day);
//1이 일요일~7이 토요일
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
System.out.println("요일:" + dayOfWeek);
System.out.println();
String strWeek = null;
switch(dayOfWeek) {
case Calendar.MONDAY: strWeek = "월"; break; //2
case Calendar.TUESDAY: strWeek = "화"; break; //3
case Calendar.WEDNESDAY: strWeek = "수"; break; //4
case Calendar.THURSDAY: strWeek = "목"; break; //5
case Calendar.FRIDAY: strWeek = "금"; break; //6
case Calendar.SATURDAY: strWeek = "토"; break; //7
default: strWeek = "일"; //1
}
int amPm = calendar.get(Calendar.AM_PM); //오전일 경우 0, 오후일 경우 1 반환
String strAmPm = null;
if(amPm == Calendar.AM) {
strAmPm = "오전";
}else {
strAmPm = "오후";
}
int hour = calendar.get(Calendar.HOUR);
int minute = calendar.get(Calendar.MINUTE);
int second = calendar.get(Calendar.SECOND);
System.out.print(year + "년 ");
System.out.print(month + "월 ");
System.out.println(day + "일 ");
System.out.print(strWeek + "요일 ");
System.out.println(strAmPm + " ");
System.out.print(hour + "시 ");
System.out.print(minute + "분 ");
System.out.println(second + "초 ");
}
}
실행결과)
java.util.GregorianCalendar[time=1723441775115,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=2024,MONTH=7,WEEK_OF_YEAR=33,WEEK_OF_MONTH=3,DAY_OF_MONTH=12,DAY_OF_YEAR=225,DAY_OF_WEEK=2,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=2,HOUR_OF_DAY=14,MINUTE=49,SECOND=35,MILLISECOND=115,ZONE_OFFSET=32400000,DST_OFFSET=0] 연도:2024 월:8 일:12 요일:2 2024년 8월 12일 월요일 오후 2시 49분 35초 |
LocalDateTime
- 날짜와 시간 더하기 빼기 기능 제공
- import java.time.LocalDateTime; 필요
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateTimeOperationExample {
public static void main(String[] args) {
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy.MM.dd a HH:mm:ss");
System.out.println("현재 시간:" + now.format(dtf));
LocalDateTime result1 = now.plusYears(1);
System.out.println("1년 덧셈:" + result1.format(dtf));
LocalDateTime result2 = now.minusMonths(2);
System.out.println("2월 뺄셈:" + result2.format(dtf));
LocalDateTime result3 = now.plusDays(7);
System.out.println("7일 덧셈:" + result3.format(dtf));
}
}
실행결과)
현재 시간:2024.08.12 오후 15:06:17 1년 덧셈:2025.08.12 오후 15:06:17 2월 뺄셈:2024.06.12 오후 15:06:17 7일 덧셈:2024.08.19 오후 15:06:17 |
반응형
'Java' 카테고리의 다른 글
[Java] 제네릭 타입 (0) | 2024.08.15 |
---|---|
[Java] 제네릭 (0) | 2024.08.14 |
[Java] toString(), StringBuilder, StringTokenizer, Math, Wrapper (0) | 2024.08.10 |
[Java] Object, equals(), hashCode() (0) | 2024.08.09 |
[Java] 예외처리 (0) | 2024.08.08 |