본문 바로가기
Programming/Java, Spring

[Java 기초문법] 시간 관련 메서드, Date, Calendar, java.time 패키지

by Renechoi 2022. 10. 21.

[Java 기초문법] by Programmers school 자바 중급

 

 


Date

 

import java.text.SimpleDateFormat;
import java.util.*;

public class Car {
    public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date.toString());
        SimpleDateFormat ft =  new SimpleDateFormat ("yyyy.MM.dd 'at' hh:mm:ss a zzz");
        System.out.println(ft.format(date));

        System.out.println(date.getTime());
        // System이 가지고 있는 currentTimeMillis()메소드를 이용해도 됩니다.
        long today = System.currentTimeMillis();
        System.out.println(today);


    }
    }

Fri Oct 21 14:27:30 KST 2022
2022.10.21 at 02:27:30 오후 KST
1666330050204
1666330050237

 

 


Calendar

 

캘런더 클래스는 Date가 지역화를 고려하지 않은 것을 보완하고자 만들어진 클래스.

 

캘런더 클래스는 추상 클래스로서  Calendar가 가지고 있는 클래스 메소드 getInstance를 사용해야 한다.

 

getInstance를 호출하면 내부적으로 GregorianCalendar 인스턴스를 만들어서 리턴한다. 

 

Calendar cal = Calendar.getInstance();

 

 

그렇다면 직접 이 클래스를 호출하면 되는데 왜 숨기는 방식으로 호출이 되어야 할까?

 

표준이 되는 달력이 다른 클래스가 차후에 될 수 있다는 점을 고려해서. 

 

 

import java.text.SimpleDateFormat;
import java.util.*;

public class Car {
    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();

        int yyyy = cal.get(Calendar.YEAR);
        int month = cal.get(Calendar.MONTH) + 1; // 월은 0부터 시작합니다.
        int date = cal.get(Calendar.DATE);
        int hour = cal.get(Calendar.HOUR_OF_DAY);
        int minute = cal.get(Calendar.MINUTE);

        cal.add(Calendar.HOUR, 5);

        System.out.println(yyyy);
        System.out.println(month);
        System.out.println(date);
        System.out.println(hour);
        System.out.println(minute);


    }
    }

 

2022
10
21
14
32

 

 

월에 대해서는 +1을 해서 현재 월에 대한 정보를 표현한다. 

 


 

java.time 패키지 

 

Java 8부터 date, time api를 새롭게 제공하는 패키지 

 

 

 

import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;

public class Car {
    public static void main(String[] args) {
        LocalDateTime timePoint = LocalDateTime.now(); // 현재의 날짜와 시간
        System.out.println(timePoint);
    }
}

2022-10-21T14:34:28.874395600

 

현재 시간을 리턴한다. 

 

 

// 2012년 12월 12일의 시간에 대한 정보를 가지는 LocalDate객체를 만드는 방법
LocalDate ld1 = LocalDate.of(2012, Month.DECEMBER, 12); // 2012-12-12 from values

// 17시 18분에 대한 LocalTime객체를 구한다.
LocalTime lt1 = LocalTime.of(17, 18); // 17:18 (17시 18분)the train I took home today

// 10시 15분 30초라는 문자열에 대한 LocalTime객체를 구한다.
LocalTime lt2 = LocalTime.parse("10:15:30"); // From a String

System.out.println(ld1);
System.out.println(lt1);
System.out.println(lt2);

2012-12-12
17:18
10:15:30

 

 

 

다양한 방식으로 출력이 가능하다.

 

getter 메소드를 이용해서 현재와 날짜, 시간 정보를 구하는 방법 

 

import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.Month;
import java.util.*;

public class Car {
    public static void main(String[] args) {
        LocalDateTime timePoint = LocalDateTime.now(); // 현재의 날짜와 시간

        LocalDate theDate = timePoint.toLocalDate();
        Month month = timePoint.getMonth();
        int day = timePoint.getDayOfMonth();
        int hour = timePoint.getHour();
        int minute = timePoint.getMinute();
        int second = timePoint.getSecond();
        // 달을 숫자로 출력한다 1월도 1부터 시작하는 것을 알 수 있습니다.
        System.out.println(theDate);
        System.out.println(month.getValue() + "/" + day + "  " + hour + ":" + minute + ":" + second);

    }
}

2022-10-21
10/21  14:36:27

 

반응형