상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 자바에서 날짜와 시간을 처리하는 방법은?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
<a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>에서 날짜와 시간을 처리하는 방법은 여러 가지가 있습니다. 자바 8 이전에는 `java.util.Date`와 `java.util.Calendar` 클래스를 사용하여 날짜와 시간을 처리했지만, 이들 클래스는 사용하기 복잡하고 불편한 점이 많았습니다. 그래서 자바 8부터는 새로운 날짜 및 시간 API인 `java.time` 패키지가 도입되었습니다. 이 패키지는 더 직관적이고 사용하기 쉬운 방법으로 날짜와 시간을 처리할 수 있도록 설계되었습니다. 1. 자바 8 이전의 날짜 및 시간 처리 1.1. java.util.Date`Date` 클래스는 날짜와 시간을 표현하는 기본적인 클래스로, 특정 시점을 나타냅니다. 그러나 이 클래스는 불변성이 없고, 여러 메서드가 deprecated 되어 있어 사용이 권장되지 않습니다.```javaimport java.util.Date;public class DateExample { public static void main(String[] args) { Date date = new Date(); System.out.println("현재 날짜와 시간: " + date); }}``` 1.2. java.util.Calendar`Calendar` 클래스는 `Date` 클래스의 단점을 보완하기 위해 만들어졌습니다. 이 클래스는 날짜와 시간을 조작하는 데 더 많은 기능을 제공합니다.```javaimport java.util.Calendar;public class CalendarExample { public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); System.out.println("현재 <a href='https://sangseek.com/sangseeks/년도/ko'>년도</a>: " + calendar.get(Calendar.YEAR)); System.out.println("현재 월: " + (calendar.get(Calendar.MONTH) + 1)); // 월은 0부터 시작 System.out.println("현재 일: " + calendar.get(Calendar.DAY_OF_MONTH)); }}``` 2. 자바 8 이후의 날짜 및 시간 처리자바 8에서는 `java.time` 패키지가 도입되어 날짜와 시간을 더 쉽게 처리할 수 있게 되었습니다. 이 패키지에는 `LocalDate`, `LocalTime`, `LocalDateTime`, `ZonedDateTime`, `Duration`, `Period` 등 다양한 클래스가 포함되어 있습니다. 2.1. LocalDate`LocalDate` 클래스는 날짜(연도, 월, 일)를 표현합니다. 시간 정보는 포함되지 않습니다.```javaimport java.time.LocalDate;public class LocalDateExample { public static void main(String[] args) { LocalDate today = LocalDate.now(); System.out.println("오늘 날짜: " + today); LocalDate specificDate = LocalDate.of(2023, 10, 1); System.out.println("특정 날짜: " + specificDate); }}``` 2.2. LocalTime`LocalTime` 클래스는 시간(시, 분, 초)을 표현합니다. 날짜 정보는 포함되지 않습니다.```javaimport java.time.LocalTime;public class LocalTimeExample { public static void main(String[] args) { LocalTime now = LocalTime.now(); System.out.println("현재 시간: " + now); LocalTime specificTime = LocalTime.of(14, 30, 45); System.out.println("특정 시간: " + specificTime); }}``` 2.3. LocalDateTime`LocalDateTime` 클래스는 날짜와 시간을 모두 포함합니다.```javaimport java.time.LocalDateTime;public class LocalDateTimeExample { public static void main(String[] args) { LocalDateTime now = LocalDateTime.now(); System.out.println("현재 날짜와 시간: " + now); LocalDateTime specificDateTime = LocalDateTime.of(2023, 10, 1, 14, 30); System.out.println("특정 날짜와 시간: " + specificDateTime); }}``` 2.4. ZonedDateTime`ZonedDateTime` 클래스는 시간대 정보를 포함한 날짜와 시간을 표현합니다.```javaimport java.time.ZonedDateTime;public class ZonedDateTimeExample { public static void main(String[] args) { ZonedDateTime zonedNow = ZonedDateTime.now(); System.out.println("현재 날짜와 시간 (시간대 포함): " + zonedNow); }}``` 3. 날짜와 시간의 조작`java.time` 패키지의 클래스들은 불변성을 가지므로, 날짜와 시간을 조작할 때는 새로운 객체를 반환합니다.```javaimport java.time.LocalDate;public class DateManipulationExample { public static void main(String[] args) { LocalDate today = LocalDate.now(); LocalDate nextWeek = today.plusWeeks(1); LocalDate lastMonth = today.minusMonths(1); System.out.println("오늘: " + today); System.out.println("다음 주: " + nextWeek); System.out.println("지난 달: " + lastMonth); }}``` 4. 날짜와 시간 포맷팅`DateTimeFormatter` 클래스를 사용하여 날짜와 시간을 원하는 형식으로 포맷할 수 있습니다.```javaimport java.time.LocalDate;import java.time.format.DateTimeFormatter;public class DateFormattingExample { public static void main(String[] args) { LocalDate today = LocalDate.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); String formattedDate = today.format(formatter); System.out.println("포맷된 날짜: " + formattedDate); }}``` 5. 날짜와 시간 비교`java.time` 패키지에서는 날짜와 시간을 쉽게 비교할 수 있는 메서드를 제공합니다.```javaimport java.time.LocalDate;public class DateComparisonExample { public static void main(String[] args) { LocalDate date1 = LocalDate.of(2023, 10, 1); LocalDate date2 = LocalDate.of(2023, 11, 1); if (date1.isBefore(date2)) { System.out.println(date1 + "는 " + date2 + "보다 이전입니다."); } else if (date1.isAfter(date2)) { System.out.println(date1 + "는 " + date2 + "보다 이후입니다."); } else { System.out.println(date1 + "와 " + date2 + "는 같습니다."); } }}``` 결론자바에서 날짜와 시간을 처리하는 방법은 자바 8 이전과 이후로 크게 나눌 수 있습니다. 자바 8 이후에는 `java.time` 패키지를 통해 더 직관적이고 효율적으로 날짜와 시간을 다룰 수 있게 되었습니다. 이 새로운 API는 불변성을 가지고 있으며, 다양한 날짜 및 시간 관련 작업을 쉽게 수행할 수 있는 메서드를 제공합니다. 따라서 새로운 프로젝트에서는 `java.time` 패키지를 사용하는 것이 좋습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기