코딩선배
[Java] 현재 날짜, 시간, 요일 구하기 본문
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.format과 time.format은 dateTime.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 |