Java API를 사용하여 현재 날짜, 현재 시간을 구하는 방법을 소개합니다.
Java 8 이후Java 8 이후부터는 java.time 패키지의 클래스들을 사용하여 날짜와 시간을 표현합니다. 그리고, java.time.format.DateTimeFormatter 클래스를 이용하여 날짜와 시간을 원하는 형식으로 출력할 수 있습니다. 1. java.time.LocalDatejava.time.LocalData 클래스는 날짜를 표현하는 클래스입니다. 현재 날짜(타임존 적용) 구하기
LocalDate.now(); 시스템에 default로 지정된 시간과 타임존을 이용하여 현재 날짜를 가져옵니다. LocalDate.now(ZoneId.of("Europe/Paris")); 시스템 시계의 날짜를 Europe/Paris의 타임존을 적용하여 가져옵니다. 포맷 적용하기
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); now.format(formatter); DateTimeFormatter 클래스를 이용하여 원하는 형태로 출력할 수 있습니다. 년, 월(문자열, 숫자), 일, 요일, 일(Year 기준) 출력하기
int year = now.getYear(); 년도를 가져옵니다.
getMonth() 메소드는 해당월을 나타내는 java.time.Month Enum을 리턴합니다. 리턴받은 Month 객체의 toString() 메소드를 이용하여, 월의 이름을 출력하였습니다. Month 객체를 사용하여, 월을 숫자로 출력하고 싶다면, now.getMonth().getValue() 를 사용할 수도 있습니다.
월을 숫자로 표현하기 위해서 now.getMonth().getValue()를 사용할 수도 있지만, LocalDate 객체의 getMonthValue() 메소드를 사용 할 수도 있습니다.
월의 몇번째 날짜인지를 int로 나타냅니다.
년의 몇번째 날짜인지를 int로 나타냅니다.
getDayOfWeek() 메소드는 요일을 나타낼수 있는 DayOfWeek Enum 객체를 리턴합니다. 그리고, DayOfWeek 객체의 toString() 메소드를 사용하여, 요일을 텍스트로 출력하였습니다. int dayOfWeekValue = now.getDayOfWeek().getValue(); DayOfWeek 객체의 getValue() 메소드를 사용하여 요일을 숫자로 변환할 수 있습니다. 월요일(1) ~ 일요일(7)을 리턴합니다. 2. java.time.LocalTimejava.time.LocalTime 클래스는 시간을 표현하는 클래스입니다. 현재 시간 구하기, 포맷 적용
LocalTime.now(); LocalTime 클래스를 이용하여 현재 시간을 구할 수 있습니다. DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH시 mm분 ss초");
LocalDate 예제와 마찬가지로 DateTimeFormatter 클래스를 이용하여 시간을 원하는 포맷의 문자열로 변환할 수 있습니다. 현재 시간의 시, 분, 초 구하기
int hour = now.getHour(); getHour(), getMinute(), getSecond() 메소드를 이용하여 시, 분, 초를 각각 구할 수 있습니다. 3. java.time.LocalDateTimejava.time.LocalDateTime 클래스는 날짜와 시간을 표현하는 클래스입니다. 현재 날짜/시간 구하기, 포맷팅해서 출력하기
LocalDateTime.now(); LocalDateTime.now() 메소드를 사용하면 현재 날짜와 시간을 모두 구할 수 있습니다. now.format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss초")); LocalDate, LocalTime 클래스의 결과를 포맷팅 했던 것과 마찬가지로 DateTimeFormatter 클래스를 이용해서 포맷팅 할 수 있습니다. 년, 월, 일, 요일, 시, 분, 초 각각 구하기
LocalDate, LocalTime 클래스에서 년, 월, 일, 요일, 시, 분, 초를 각각 구했던 것처럼 LocalDateTime 클래스의 메소드를 이용해서 각각을 구할 수 있습니다. Java 8 이전Java 8 이전의 날짜와 시간을 나타내는 Date, Calendar 클래스는 많은 부분이 deprecated 되었고, 가능하면 사용을 권장하지 않습니다. 그래서 여기에서는 기본적인 내용만 소개합니다. 1. java.util.Date
Date now = new Date(); Date 객체를 생성하여, 현재 시간을 구했습니다. SimpleDateFormat formatter = new SimpleDateFormat("yyyy년 MM월 dd일 HH시 mm분 ss초"); String formatedNow = formatter.format(now); SimpleDateFormat 클래스를 이용해서, 원하는 포맷으로 문자열을 생성할 수 있습니다. 2. java.util.Calendar
Calendar.getInstance().getTime(); Calendar의 instance를 생성하여, Calendar 객체의 getTime() 메소드를 호출하여 현재시간을 가져왔습니다. SimpleDateFormat formatter = new SimpleDateFormat("yyyy년 MM월 dd일 HH시 mm분 ss초"); String formatedNow = formatter.format(now); getTime() 메소드가 리턴하는 객체가 Date 타입이기 때문에, 앞의 예제와 마찬가지로 SimpleDateFormat 클래스를 이용하여 포맷팅을 하였습니다. Java API를 이용하여 현재 날짜, 시간을 구하고, 포맷팅 하는 방법을 알아보았습니다. |