ava에서 현재 날짜 또는 현재 시간을 취득하는 방법에 대해 알아보겠습니다.
이번 내용에서는 Java8에서 취득하는 방법으로 LocalDate, LocalTime, LocalDateTime를 사용하겠습니다.
그리고 포맷은 java.time.format.DateTimeFormatter 클래스를 사용하여 출력하도록 하겠습니다.
- LocalDate – 현재 날짜 취득.
- LocalTime – 현재 시간 취득.
- LocalDateTime – 현재 날짜와 시간 취득.
Java8 이전 버전에서 현재 날짜 또는 시간을 취득하고 포맷을 변경하는 방법은 아래 내용을 참조해 주세요.
LocalDate
날짜를 취득할 수 있는 클래스로 LocalDate가 있습니다.
샘플을 보면서 사용 방법을 확인해 보겠습니다.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class CurrentDateTime {
public static void main(String[] args) {
// 현재 날짜 구하기
LocalDate nowdate = LocalDate.now();
System.out.println(nowdate);
// 포맷 지정
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일");
// 포맷 적용
String formatedNow = nowdate.format(formatter);
System.out.println(formatedNow);
}
}
결과
2022-12-21
2022년 12월 21일
LocalDate.now()를 사용해 현재 날짜를 취득해 옵니다.
현재 날짜는 시스템에 지정된 시간과 타임존을 사용해 취득해 옵니다.
첫 번째 출력된 결과는 LocalDate.now()를 사용해 취득해온 날짜를 포맷 변경 없이 출력한 결과입니다.
두 번째 출력된 결과는 LocalDate.now()를 사용해 취득해온 날짜를 DateTimeFormatter를 사용해 원하는 포맷으로 변경해 출력한 결과입니다.
LocalDate.now()를 사용해 취득한 날짜는 LocalDate에 준비되어 있는 메서드를 사용해 년월일을 따로 취득할 수도 있습니다.
또는 요일 및 일수도 취득할 수 있습니다.
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class CurrentDateTime {
public static void main(String[] args) {
// 현재 날짜 구하기
LocalDate nowdate = LocalDate.now();
// 연도, 월(문자열, 숫자), 일, 일(year 기준), 요일(문자열, 숫자)
int year = nowdate.getYear(); // 연도 취득
String month = nowdate.getMonth().toString(); // 월 취득
int monthValue = nowdate.getMonthValue(); // 월 취득(숫자)
int dayOfMonth = nowdate.getDayOfMonth(); // 일 취득
int dayOfYear = nowdate.getDayOfYear(); // 일수 취득
String dayOfWeek = nowdate.getDayOfWeek().toString(); // 요일 취득
int dayOfWeekValue = nowdate.getDayOfWeek().getValue(); // 요일 취득(숫자)
// 결과
System.out.println("현재 날짜 : " + nowdate);
System.out.println("연도 취득 : " + year);
System.out.println("월 취득 : " + month );
System.out.println("월 취득(숫자) : " + monthValue);
System.out.println("일 취득 : " + dayOfMonth);
System.out.println("일수 취득 : " + dayOfYear);
System.out.println("요일 취득 : " + dayOfWeek );
System.out.println("요일 취득(숫자) : " + dayOfWeekValue);
}
}
결과
현재 날짜 : 2022-12-21
연도 취득 : 2022
월 취득 : DECEMBER
월 취득(숫자) : 12
일 취득 : 21
일수 취득 : 355
요일 취득 : WEDNESDAY
요일 취득(숫자) : 3
메서드를 사용해 여러 형태로 취득이 가능합니다.
메서드의 종류와 내용은 다음과 같습니다.
메서드 | 내용 |
---|---|
getYear() | 연도 취득. |
getMonth() | 월 취득. toString() 사용해 문자열로 출력 가능. |
getMonthValue() | 월 취득. 숫자로 반환. |
getDayOfMonth() | 일 취득. |
getDayOfYear() | 년의 몇번째 일인지 취득. |
dayOfWeek() | 월요일(1) ~ 일요일(7) 숫자값 요일 취득. toString() 사용해 문자열로 출력 가능. |
LocalTime
시간을 취득할 수 있는 LocalTime 클래스를 알아보겠습니다.
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class CurrentDateTime {
public static void main(String[] args) {
// 현재 시간
LocalTime nowtime = LocalTime.now();
System.out.println(nowtime);
// 포맷 지정
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH시 mm분 ss초");
// 포맷 적용
String formatedtime = nowtime.format(formatter);
System.out.println(formatedtime);
}
}
결과
05:54:51.966378427
05시 54분 51초
현재 시간은 시스템에 지정된 시간과 타임존을 사용해 취득해 옵니다.
첫 번째 출력된 결과는 LocalTime.now()를 사용해 취득해온 시간을 포맷 변경 없이 출력한 결과입니다.
두 번째 출력된 결과는 LocalTime.now()를 사용해 취득해온 시간을 DateTimeFormatter를 사용해 원하는 포맷으로 변경해 출력한 결과입니다.
LocalTime에 준비되어 있는 메서드를 사용해 시분초를 각각 취득할 수 있습니다.
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class CurrentDateTime {
public static void main(String[] args) {
// 현재 시간
LocalTime nowtime = LocalTime.now();
// 시 분 초 취득
int hour = nowtime.getHour();
int minute = nowtime.getMinute();
int second = nowtime.getSecond();
// 결과
System.out.println(nowtime);
System.out.println("시간 취득 : " + hour);
System.out.println("분 취득 : " + minute);
System.out.println("초 취득 : " + second);
}
}
결과
05:57:28.717065267
시간 취득 : 5
분 취득 : 57
초 취득 : 28
메서드를 사용해 여러 형태로 취득 가능합니다.
메서드의 종류와 내용은 다음과 같습니다.
메서드 | 내용 |
---|---|
getHour() | 시간을 취득. |
getMinute() | 분을 취득. |
getSecond() | 초를 취득. |
LocalDateTime
현재 날짜와 시간을 동시에 취득할 수 있는 클래스인 LocalDateTime을 살펴보겠습니다.
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class CurrentDateTime {
public static void main(String[] args) {
// 현재 날짜와 시간 취득
LocalDateTime nowdatetime = LocalDateTime.now();
System.out.println(nowdatetime);
// 포맷 지정
String formatednowtime = nowdatetime.format(DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss초"));
// 포맷 적용
System.out.println(formatednowtime);
}
}
결과
2022-12-21T06:00:22.920034701
2022년 12월 21일 06시 00분 22초
현재 날짜와 시간은 시스템에 지정된 시간과 타임존을 사용해 취득해 옵니다.
첫 번째 출력된 결과는 LocalDateTime.now()를 사용해 취득해온 날짜와 시간을 포맷 변경 없이 출력한 결과입니다.
두 번째 출력된 결과는 LocalDateTime.now()를 사용해 취득해온 날짜와 시간을 DateTimeFormatter를 사용해 원하는 포맷으로 변경해 출력한 결과입니다.
LocalDateTime에서는 LocalDate와 LocalTime에서 사용가능한 메서드를 통해 여러 형태로 값을 취득할 수 있습니다.
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class CurrentDateTime {
public static void main(String[] args) {
// 현재 날짜와 시간 취득
LocalDateTime nowdatetime = LocalDateTime.now();
System.out.println(nowdatetime);
// 연도, 월(문자열, 숫자), 일, 일(year 기준), 요일(문자열, 숫자)
int year = nowdatetime.getYear(); // 연도 취득
String month = nowdatetime.getMonth().toString(); // 월 취득
int monthValue = nowdatetime.getMonthValue(); // 월 취득(숫자)
int dayOfMonth = nowdatetime.getDayOfMonth(); // 일 취득
int dayOfYear = nowdatetime.getDayOfYear(); // 일수 취득
String dayOfWeek = nowdatetime.getDayOfWeek().toString(); // 요일 취득
int dayOfWeekValue = nowdatetime.getDayOfWeek().getValue(); // 요일 취득(숫자)
// 결과
System.out.println("현재 날짜 : " + nowdatetime);
System.out.println("연도 취득 : " + year);
System.out.println("월 취득 : " + month );
System.out.println("월 취득(숫자) : " + monthValue);
System.out.println("일 취득 : " + dayOfMonth);
System.out.println("일수 취득 : " + dayOfYear);
System.out.println("요일 취득 : " + dayOfWeek );
System.out.println("요일 취득(숫자) : " + dayOfWeekValue);
// 시 분 초 취득
int hour = nowdatetime.getHour();
int minute = nowdatetime.getMinute();
int second = nowdatetime.getSecond();
// 결과
System.out.println(nowdatetime);
System.out.println("시간 취득 : " + hour);
System.out.println("분 취득 : " + minute);
System.out.println("초 취득 : " + second);
}
}
결과
2022-12-21T06:06:04.537197801
현재 날짜 : 2022-12-21T06:06:04.537197801
연도 취득 : 2022
월 취득 : DECEMBER
월 취득(숫자) : 12
일 취득 : 21
일수 취득 : 355
요일 취득 : WEDNESDAY
요일 취득(숫자) : 3
2022-12-21T06:06:04.537197801
시간 취득 : 6
분 취득 : 6
초 취득 : 4
LocalDate, LocalTime, LocalDateTime 클래스를 사용해 Java8 이후에서 현재 날짜와 시간을 취득하는 방법을 알아봤습니다.
댓글