코딩선배

[Java] 현재 날짜, 시간, 요일 구하기 본문

Backend/Java

[Java] 현재 날짜, 시간, 요일 구하기

코딩선배 2023. 5. 9. 15:57

Java8 이후 기준 현재 날짜, 시간, 날짜 + 시간을 여러 가지 형태로 구할 수 있는 방법입니다

 

 

 

먼저 이렇게 작성해 주세요

LocalDate date = LocalDate.now();
LocalTime time = LocalTime.now();
LocalDateTime dateTime = LocalDateTime.now();

DateTimeFormatter formatter;
String formatteDateTime;

날짜와 시간을 구해주는 각각의 클래스들이 있습니다

 

날짜 : LocalDate

시간 : LocalTime

날짜 + 시간 : LocalDateTime

 

date, time, dateTime에 있는 날짜와 시간을 DateTimeFormatter를 사용하여 형태를 바꿔서 formatteDateTime에 넣습니다

 

LocalDate나 LocalTime에만 있는 기능을 사용할 것이 아니라면 LocalDateTime을 사용해도 무방합니다

 

 

 

스크롤을 내리면서 원하는 양식의 날짜, 시간, 요일을 찾아보세요

앞으로 계속 나오는 date.formattime.formatdateTime.format으로도 사용 가능합니다

 


 

날짜

 

2023-05-09
2023-5-9
2023년 05월 09일
2023년 5월 9일

System.out.println(date);                   // 2023-05-09

formatter = DateTimeFormatter.ofPattern("yyyy-M-d");
formatteDateTime = date.format(formatter);
System.out.println(formatteDateTime);       // 2023-5-9

formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일");
formatteDateTime = date.format(formatter);
System.out.println(formatteDateTime);       // 2023년 05월 09일

formatter = DateTimeFormatter.ofPattern("yyyy년 M월 d일");
formatteDateTime = date.format(formatter);
System.out.println(formatteDateTime);       // 2023년 5월 9일

 

 

 

2023
05
09

5
9

formatter = DateTimeFormatter.ofPattern("yyyy");
String formattedDate = date.format(formatter);
System.out.println(formattedDate);          // 2023

formatter = DateTimeFormatter.ofPattern("MM");
formattedDate = date.format(formatter);
System.out.println(formattedDate);           // 05

formatter = DateTimeFormatter.ofPattern("dd");
formattedDate = date.format(formatter);
System.out.println(formattedDate);           // 09

formatter = DateTimeFormatter.ofPattern("M");
formattedDate = date.format(formatter);
System.out.println(formattedDate);           // 5

formatter = DateTimeFormatter.ofPattern("d");
formattedDate = date.format(formatter);
System.out.println(formattedDate);           // 9

 

 

 

2023
5
9
MAY
TUESDAY

System.out.println(date.getYear());         // 2023
System.out.println(date.getMonthValue());   // 5
System.out.println(date.getDayOfMonth());   // 9
System.out.println(date.getMonth());        // MAY
System.out.println(date.getDayOfWeek());    // TUESDAY

 


 

시간

 

05:02:01
5:2:1
05시 02분 01초
5시 2분 1초

 

아래의 코드는 현재 시간이 아닌 임의의 시간(오전 5시 2분 1초)으로 세팅하는 코드입니다

time = LocalTime.of(05, 02, 01);

 

time = LocalTime.of(05, 02, 01);

formatter = DateTimeFormatter.ofPattern("HH:mm:ss");          // 05:02:01
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

formatter = DateTimeFormatter.ofPattern("H:m:s");             // 5:2:1
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

formatter = DateTimeFormatter.ofPattern("HH시 mm분 ss초");     // 05시 02분 01초
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

formatter = DateTimeFormatter.ofPattern("H시 m분 s초");        // 5시 2분 1초
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

 

 

 

오후 14시 05분 09초
오후 14시 5분 9초
오후 2시 05분 09초
오후 2시 5분 9초

time = LocalTime.of(14, 5, 9);

formatter = DateTimeFormatter.ofPattern("a HH시 mm분 ss초");   // 오후 14시 05분 09초
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

formatter = DateTimeFormatter.ofPattern("a H시 m분 s초");      // 오후 14시 5분 9초
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

formatter = DateTimeFormatter.ofPattern("a h시 mm분 ss초");    // 오후 2시 05분 09초
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

formatter = DateTimeFormatter.ofPattern("a h시 m분 s초");      // 오후 2시 5분 9초
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

 

 

 

14
05
09
5
9

formatter = DateTimeFormatter.ofPattern("HH");   // 14
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

formatter = DateTimeFormatter.ofPattern("mm");   // 05
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

formatter = DateTimeFormatter.ofPattern("ss");   // 09
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

formatter = DateTimeFormatter.ofPattern("m");   // 5
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

formatter = DateTimeFormatter.ofPattern("s");   // 9
formatteDateTime = time.format(formatter);
System.out.println(formatteDateTime);

 

 

 

14
5
9

System.out.println(time.getHour());         // 14
System.out.println(time.getMinute());       // 5
System.out.println(time.getSecond());       // 9

 


 

날짜 + 시간

 

2023-05-09 14:31:59
2023-05-09 오후 14:31:59
2023-05-09 오후 02:31:59
2023-05-09 오후 2:31:59

 

시(HH, H, hh, h)를 쓰기 전에 a를 쓰면 오전, 오후를 붙여줍니다

HH는 24시간 형식, hh는 12시간 형식입니다

formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
formatteDateTime = dateTime.format(formatter);
System.out.println(formatteDateTime);    // 2023-05-09 14:05:09

formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd a HH:mm:ss");
formatteDateTime = dateTime.format(formatter);
System.out.println(formatteDateTime);    // 2023-05-09 오후 14:05:09

formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd a hh:mm:ss");
formatteDateTime = dateTime.format(formatter);
System.out.println(formatteDateTime);    // 2023-05-09 오후 02:05:09

formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd a h:m:s");
formatteDateTime = dateTime.format(formatter);
System.out.println(formatteDateTime);    // 2023-05-09 오후 2:5:9

 

 

 

2023년 05월 09일 오후 14시 51분 55초
2023년 5월 9일 오후 14시 51분 55초
2023년 05월 09일 오후 02시 51분 55초
2023년 5월 9일 오후 2시 51분 55초

formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 a HH시 mm분 ss초");
formatteDateTime = dateTime.format(formatter);
System.out.println(formatteDateTime);   // 2023년 05월 09일 오후 14시 05분 09초

formatter = DateTimeFormatter.ofPattern("yyyy년 M월 d일 a H시 m분 s초");
formatteDateTime = dateTime.format(formatter);
System.out.println(formatteDateTime);   // 2023년 5월 9일 오후 2시 5분 9초

formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 a hh시 mm분 ss초");
formatteDateTime = dateTime.format(formatter);
System.out.println(formatteDateTime);   // 2023년 05월 09일 오후 02시 05분 09초

formatter = DateTimeFormatter.ofPattern("yyyy년 M월 d일 a h시 m분 s초");
formatteDateTime = dateTime.format(formatter);
System.out.println(formatteDateTime);   // 2023년 5월 9일 오후 2시 5분 9초

 

 

 

2023-05-09 15:36:01

2023-5-9 오후 3:36:01

formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
formatteDateTime = dateTime.format(formatter);
System.out.println(formatteDateTime);   // 2023-05-09 15:36:01

formatter = DateTimeFormatter.ofPattern("yyyy-M-d a h:mm:ss");
formatteDateTime = dateTime.format(formatter);
System.out.println(formatteDateTime);   // 2023-5-9 오후 3:36:01

 

 

 

2023
5
9
MAY
TUESDAY
14
31
59

System.out.println(dateTime.getYear());         // 2023
System.out.println(dateTime.getMonthValue());   // 5
System.out.println(dateTime.getDayOfMonth());   // 9
System.out.println(dateTime.getMonth());        // MAY
System.out.println(dateTime.getDayOfWeek());    // TUESDAY
System.out.println(dateTime.getHour());         // 14
System.out.println(dateTime.getMinute());       // 5
System.out.println(dateTime.getSecond());       // 9

 


 

요일

 

DayOfWeek dayOfWeek = LocalDate.now().getDayOfWeek();
String dayOfWeekInKorean;

 

 

 

화요일

dayOfWeekInKorean = dayOfWeek.getDisplayName(TextStyle.FULL, Locale.KOREAN);
System.out.println(dayOfWeekInKorean);  // 화요일

dayOfWeekInKorean = date.getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.KOREAN);
System.out.println(dayOfWeekInKorean);  // 화

 


 

날짜 + 요일

 

2023년 05월 09일 화요일
2023년 5월 9일(화)

formatter = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일");
formatteDateTime = date.format(formatter);
dayOfWeekInKorean = dayOfWeek.getDisplayName(TextStyle.FULL, Locale.KOREAN);
System.out.println(formatteDateTime + " " + dayOfWeekInKorean);         // 2023년 05월 09일 화요일

formatter = DateTimeFormatter.ofPattern("yyyy년 M월 d일");
formatteDateTime = date.format(formatter);
dayOfWeekInKorean = date.getDayOfWeek().getDisplayName(TextStyle.SHORT, Locale.KOREAN);
System.out.println(formatteDateTime + "(" + dayOfWeekInKorean + ")");   // 2023년 5월 9일(화)

 

 

 

'Backend > Java' 카테고리의 다른 글

[Java] for문으로 별 찍기  (0) 2023.05.19
[Java] 현재 IP 주소 구하기  (0) 2023.05.09
[Java] println, print, printf 차이  (2) 2022.12.26
[Java] nextInt 다음 nextLine 안될 때 해결 방법  (0) 2022.12.23
Comments