관리 메뉴

Life goes slowly...

[Java] 자바 - 현재 날짜,시간 조회하기 본문

프로그래밍/Java

[Java] 자바 - 현재 날짜,시간 조회하기

빨강소 2020. 10. 13. 00:10
728x90
반응형

자바(Java) 프로그래밍에서는 현재 날짜와 현재 시간을 조회하는 방법이 여러가지 있는데, 기본적으로 JDK8 이전 Java에서는 java.util.Date 와 java.util.Calender 클래스를 많이 사용하였었지만, 사용함에 불편함이 많아서 java.time 패키지의 클래스를 많이 활용하고 있습니다.

 


 

java.util.Date
package domain;
import java.util.*;
import java.text.SimpleDateFormat;

public class HelloWorld {
    public static void main(String[] args) {
        SimpleDateFormat test1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat test2 = new SimpleDateFormat ( "yyyy년 MM월dd일 HH시mm분ss초");
		
        Date time = new Date();
        		
        String time1 = test1.format(time);
        String time2 = test2.format(time);
 
        System.out.println(time1);
        System.out.println(time2);
    }
}
2020-10-12 15:05:29
2020년 10월12일 15시05분29초

 

java.util.Calender (getInstance() 메서드 활용)
package domain;
import java.util.*;
import java.text.SimpleDateFormat;

public class HelloWorld {
    public static void main(String[] args) {
        SimpleDateFormat test1 = new SimpleDateFormat ( "yyyy-MM-dd HH:mm:ss");
        SimpleDateFormat test2 = new SimpleDateFormat ( "yyyy년 MM월dd일 HH시mm분ss초");
        		
        Calendar time = Calendar.getInstance();
               
        String test_time1 = test1 .format(time.getTime());
        String test_time2 = test2 .format(time.getTime());
                
        System.out.println(test_time1 );
        System.out.println(test_time2 );
    }
}
2020-10-12 15:06:22
2020년 10월12일 15시06분22초

 

java.util의 Date, Calender 클래스의 문제점
  1. 불변의 객체가 아니다
  2. 상수 필드 남용
  3. 헷갈리는 월 지정
  4. 일관성 없는 요일 상수
  5. java.util.Date 하위 클래스의 문제

 

이러한 문제점으로 인하여 Java 8.0부터는 java.time.*의 LocalDate, LocalTime, LocalDateTime 클래스가 생성되었습니다.

 

 


 

java.time.*
package domain;
import java.time.*;
import java.text.SimpleDateFormat;

public class HelloWorld {
    public static void main(String[] args) {
        LocalDate d1 = LocalDate.now();            //컴퓨터의 현재 날짜 정보
        LocalDate d2 = LocalDate.of(2020, 06, 03);

        LocalTime t1 = LocalTime.now();           //컴퓨터의 현재 시간 정보
        LocalTime t2 = LocalTime.of(11, 20, 20);

        System.out.printf("LocalDate.now() : %s\n", d1);
        System.out.printf("LocalDate.of(2020,06,03) : %s\n", d2);
        System.out.printf("LocalTime.now() : %s\n", t1);
        System.out.printf("LocalTime.of(11,20,20) : %s\n", t2);

        LocalDateTime dt1 = LocalDate.now().atTime(LocalTime.MIDNIGHT);
        LocalDateTime dt2 = LocalDate.now().atTime(LocalTime.MAX);

        System.out.printf("LocalDate.now().atTime(LocalTime.MIDNIGHT) : %s\n", dt1);
        System.out.printf("LocalDate.now().atTime(LocalTime.MAX) : %s\n", dt2);
    }
}
LocalDate.now() : 2020-10-12
LocalDate.of(2020,06,03) : 2020-06-03
LocalTime.now() : 15:07:18.128
LocalTime.of(11,20,20) : 11:20:20
LocalDate.now().atTime(LocalTime.MIDNIGHT) : 2020-10-12T00:00
LocalDate.now().atTime(LocalTime.MAX) : 2020-10-12T23:59:59.999999999

 

728x90
반응형
Comments