코드 그라데이션

[Java] 날짜, 시간 관련 함수 본문

Java, SpringBoot 추가 공부

[Java] 날짜, 시간 관련 함수

완벽한 장면 2023. 5. 4. 20:54
public class ExCalendar {

  public static void main(String[] args) {

    Calendar c = Calendar.getInstance();
    System.out.print(c.get(Calendar.YEAR)+ "년도 ");
    System.out.print(c.get(Calendar.MONTH)+1 + "월 "); //월을 나타내는 함수는 0부터 시작한다.
    System.out.print(c.get(Calendar.DATE) + "일 ");
    System.out.print(c.get(Calendar.HOUR) + "시 ");
    System.out.print(c.get(Calendar.MINUTE) + "분 ");
    System.out.print(c.get(Calendar.SECOND) + "초 ");
    System.out.println();
    Date date = c.getTime();
    System.out.println(date);
  }

}

* 날짜, 시간 관련 함수들은 범용으로 자주 사용하는 것들이므로,

  자바 라이브러리에 기본으로 포함되어 있다.

 

* 먼저

대부분 클래스의 인스턴스는 new를 통해서 만들지만

이렇게 클래스명. 이렇게 바로 점 찍어서 인스턴스를 부르기도 한다. 

Calendar.getInstance();

이건 객체가 생성되지 않았는데?

 

=> 일단 이것은 클래스와 연관되어 있다는 말이고,

    이것만 봤을 때 이게 static이란 것을 의미.

cf. 위에서 c.getTime(); 는? => non-static 이다.

다른 것들은 암기의 영역이다.

 

public class EXTime {

  public static void main(String[] args) {

    LocalDate d = LocalDate.now();
    LocalTime t = LocalTime.now();
    LocalDateTime dt = LocalDateTime.now();

    System.out.println("오늘 날짜 => " + d);
    System.out.println("오늘 시간 => " + t);
    System.out.println("오늘 날짜와 시간 => " + dt);

    String total = dt.getYear() + "년 ";
    total += dt.getMonthValue() + "월 ";
    total += dt.getDayOfMonth() + "일 ";
    total += dt.getDayOfWeek() + " ";
    total += dt.getHour() + "시 ";
    total += dt.getMinute() + "분 ";
    total += dt.getSecond() + "초 ";

    System.out.println();

    System.out.println(total);

    System.out.println();
    System.out.println("오늘부터 300일 기념일 : " + d.plusDays(300));
    System.out.println("오늘부터 12주 후의 날짜 : " + d.plusWeeks(12));

    System.out.println();

    LocalDate ld = LocalDate.of(2002, 12, 19);
    System.out.println("그날부터 900일 기념일 : " + ld.plusDays(900));
    System.out.println("그날부터 52주 후의 날짜 : " + ld.plusWeeks(52));

  }
}

- 위에서 봤던 것처럼 LocalDateTime.now(); 도 static임을 확인할 수 있다.

- 출력을 할 때,

    System.out.println("오늘 날짜 => " + d);
    System.out.println("오늘 시간 => " + t);
    System.out.println("오늘 날짜와 시간 => " + dt); 처럼

 객체 이름을 그대로 주면? 

 원래는 주소가 그대로 출력된다.

 주소가 나오는 이유는 이게 toString으로 해석되어서 그렇다.

 

그런데 LocalTime, LocalDate, LocalDateTime 등은 모두 다 toString이 예쁘게 구현되어 있다.

-> 그래서 주소가 안 나오고 예쁘게 출력이 된다.

 

----------------------------------------------------------------

total += dt.getDayOfWeek() + " "; 이것은

주가 아니라 요일을 의미.

 

다른 메서드들은 전부 숫자인데

요일은 숫자로 표현할 수 없으니까 영어로 대체한 듯.

 

 

728x90

'Java, SpringBoot 추가 공부' 카테고리의 다른 글

[Java] 프로그램, 프로세스, Thread  (0) 2023.05.05
[Java] toString() 에 대해  (0) 2023.05.04
[Java] 문자열 더하기와 String Builder  (0) 2023.05.04
클래스 배열  (0) 2023.05.01
Getter, Setter 그림  (0) 2023.04.30
Comments