[날짜와 시간 관련 클래스, 패키지]

hamonjamon·2022년 7월 31일
0

Date 클래스

  • jdk1.0 때 만들어졌기에 지역화(지역에 따라 시간, 통화 언어 등이 반영된 부분)에 대한 부분이 고려되지 않았다.
  • 클래스가 갖는 대부분의 생성자, 메서드가 Deprecated되어 있어 앞으로 특정 부분에 대해 지원을 안할 수도 있다.
 public static void main(String[] args) {
        Date date = new Date(); // 시간과 날짜 정보를 date 인스턴스가 갖게 된다.
        System.out.println("date.toString() : " + date.toString());

        SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd 'at' hh:mm:ss a zzz");
        System.out.println("ft.format(date) : " + ft.format(date)); // SimpleDateFormat 객체를 이용한 날짜 출력

        System.out.println("date.getTime() : " + date.getTime()); // long 타입의 날짜 출력


        long today = System.currentTimeMillis();
        System.out.println("today : " + today);

        System.out.println(today - date.getTime()); // 현재 걸린 시간 (메인 메서드 상단 부터 코드를 수행한 시간)
    }

Calander 클래스

  • Calander는 추상클래스로, 인스턴스를 생성하려면 해당 클래스가 갖는 getInstance()를 사용해야 한다.
 public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance();
        
        System.out.println(calendar.get(Calendar.YEAR));
        System.out.println(calendar.get(Calendar.MONTH) + 1); // 자바가 월을 표현하는데 있어 0부터 시작되기에 1을 더해주어야 한다.
        System.out.println(calendar.get(Calendar.DATE));

        System.out.println(calendar.get(Calendar.HOUR)); // 시간을 12시로 표현
        System.out.println(calendar.get(Calendar.HOUR_OF_DAY)); // 시간을 24시로 표현

        calendar.add(Calendar.HOUR, 5); // 5시간 이후로 Calendar 객체를 만들어준다.
        System.out.println(calendar.get(Calendar.HOUR));
        System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
    }

java.time 패키지

  • java.util.Date에서는 "1900년도 부터 시작", "월이 0부터 시작" 하는 등의 이슈를 해결하고자 JDK 코어에서 더 좋고 직관적인 API를 제공하기 시작하며 등장하였다.

  • 새로운 API의 핵심은 객체를 생성할 때 다양한 팩토리메서드를 갖고 사용한다.

  • 객체 자기자신의 특정 요소를 갖고 오브젝트를 생성할 때 of 메서드를 사용한다.

  • 다른 타입으로 변경할 때 from 메서드를 사용한다.

public static void main(String[] args) {

/* 다음의 클래스를 사용한다
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
*/
        LocalDateTime timePoint = LocalDateTime.now();
        System.out.println(timePoint);

        LocalDate localDate = LocalDate.of(2012, Month.DECEMBER, 12);
        System.out.println(localDate);

        LocalTime localTime1 = LocalTime.of(17, 18);
        System.out.println(localTime1);

        LocalTime localTime2 = LocalTime.parse("10:15:20");
        System.out.println(localTime2);

        LocalDate theDate = timePoint.toLocalDate();
        System.out.println(theDate);

        System.out.println(timePoint.getMonthValue());

        Month month = timePoint.getMonth();
        System.out.println(month.getValue());

    }

0개의 댓글