[Java] 현재 날짜, 시간 가져오기
May 15, 2024
Java에서 현재 날짜와 시간을 가져오는 방법에 대해서 알아보겠습니다.
1. 현재 날짜, 시간 가져오기
다음 함수들을 이용하여 현재 날짜와 시간 정보를 갖고 있는 객체를 생성할 수 있습니다.
LocalDate.now()
: 현재 날짜를 갖고 있는 LocalDate 객체 리턴LocalTime.now()
: 현재 시간을 갖고 있는 LocalTime 객체 리턴LocalDateTime.now()
: 현재 날짜와 시간을 갖고 있는 LocalDateTime 객체 리턴
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class Example {
public static void main(String[] args) {
// 현재 날짜
LocalDate currentDate = LocalDate.now();
System.out.println("Current Date: " + currentDate);
// 현재 시간
LocalTime currentTime = LocalTime.now();
System.out.println("Current Time: " + currentTime);
// 현재 날짜와 시간
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println("Current Date and Time: " + currentDateTime);
}
}
Output:
Current Date: 2023-08-27
Current Time: 18:20:52.492197612
Current Date and Time: 2023-08-27T18:20:52.492407291
년/월/일/시/분/초 정보 가져오기
LocalDateTime, LocalDate, LocalTime에서 아래와 같은 메소드를 제공하며 다음과 같은 정보를 리턴합니다. 물론 LocalDate의 경우 시간 정보는 없기 때문에 getHour()
같은 시간 함수는 제공하지 않습니다. 또한, LocalTime의 경우 날짜 정보 함수를 제공하지 않습니다.
getYear()
: 년도 값 리턴getMonthValue()
: 월 값 리턴getDayOfMonth()
: 일 값 리턴getHour()
: 시간 값 리턴getMinute()
: 분 값 리턴getSecond()
: 초 값 리턴
import java.time.LocalDateTime;
public class Example {
public static void main(String[] args) {
// 현재 날짜와 시간
LocalDateTime currentDateTime = LocalDateTime.now();
System.out.println("Current Date and Time: " + currentDateTime);
int year = currentDateTime.getYear();
int month = currentDateTime.getMonthValue();
int day = currentDateTime.getDayOfMonth();
int hour = currentDateTime.getHour();
int minute = currentDateTime.getMinute();
int second = currentDateTime.getSecond();
System.out.println("Year: " + year);
System.out.println("Month: " + month);
System.out.println("Day: " + day);
System.out.println("Hour: " + hour);
System.out.println("Minute: " + minute);
System.out.println("Second: " + second);
}
}
Output:
Current Date and Time: 2023-08-27T18:45:00.663131287
Year: 2023
Month: 8
Day: 27
Hour: 18
Minute: 45
Second: 0
2. 날짜, 시간의 형식 변경
DateTimeFormatter
를 이용하여 원하는 형식으로 날짜, 시간 정보를 출력할 수 있습니다.
DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss초")
처럼 인자로 원하는 날짜/시간 포맷을 전달LocalDate.format()
의 인자로 DateTimeFormatter를 전달하면 포맷에 맞는 문자열 리턴
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class Example {
public static void main(String[] args) {
// 현재 날짜
LocalDate currentDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일");
String str = currentDate.format(formatter);
System.out.println("Current Date: " + str);
// 현재 시간
LocalTime currentTime = LocalTime.now();
DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("HH시 mm분 ss초");
String str2 = currentTime.format(formatter2);
System.out.println("Current Time: " + str2);
// 현재 날짜와 시간
LocalDateTime currentDateTime = LocalDateTime.now();
DateTimeFormatter formatter3 = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 HH시 mm분 ss초");
String str3 = currentDateTime.format(formatter3);
System.out.println("Current Date and Time: " + str3);
}
}
Output:
Current Date: 2023년 08월 27일
Current Time: 18시 32분 31초
Current Date and Time: 2023년 08월 27일 18시 32분 31초
Pattern
DateTimeFormatter.ofPattern()
에 아래와 같은 패턴들을 사용할 수 있습니다.
패턴 | 예제 |
---|---|
yyyy-MM-dd | “2019-07-04” |
dd-MMM-yyyy | “04-July-2019” |
dd/MM/yyyy | “04/07/2019” |
yyyy-MM-dd’T’HH:mm:ssZ | “2019-07-04T12:30:30+0530” |
h:mm a | “12:00 PM” |
3. 다른 지역의 현재 날짜, 시간 가져오기
ZonedDateTime를 이용하여 다른 지역의 현재 날짜, 시간을 가져올 수 있습니다.
- ZoneId : 지역 정보를 의미
- ZonedDateTime : 다른 지역의 날짜/시간 정보를 갖고 있는 객체
ZoneId.of("America/New_York")
: 뉴욕을 의미하는 ZoneIdZonedDateTime.now(newYorkZone)
: newYorkZone에 설정된 지역의 현재 날짜/시간 가져오기
import java.time.*;
public class Example {
public static void main(String[] args) {
// 원하는 지역의 TimeZone ID 설정
ZoneId newYorkZone = ZoneId.of("America/New_York");
// 그 지역의 현재 날짜, 시간 가져오기
ZonedDateTime newYorkTime = ZonedDateTime.now(newYorkZone);
System.out.println("Current Time in New York: " + newYorkTime);
}
}
Output:
Current Time in New York: 2023-08-27T05:39:35.887944364-04:00[America/New_York]
TimeZone Id
아래와 같은 TimeZone들이 있습니다.
- America/New_York: 미국 동부 표준시 (Eastern Standard Time, EST)
- Europe/London: 그리니치 표준시 (Greenwich Mean Time, GMT)
- Asia/Tokyo: 일본 표준시 (Japan Standard Time, JST)
- America/Los_Angeles: 미국 태평양 표준시 (Pacific Standard Time, PST)
- Europe/Paris: 중앙 유럽 표준시 (Central European Time, CET)