Calendar를 사용하여 날짜와 시간을 구하는 것에 대해 정리한 적이 있다.
Calendar (날짜와 시간) 내일, 월말, 월초, 년말, 년초, 윤년 구하기
[JAVA] Calendar (날짜와 시간) 내일, 월말, 월초, 년말, 년초, 윤년 구하기
Calendar, SimpleDateFormat Calendar와 SimpleDateFormat을 사용하여 다양한 일자를 계산하는 방법이다. 일자 구하기 Calendar cal = Calendar.getInstance(); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); sdf.format(cal.getTime()
fvor001.tistory.com
자바 8 이상의 버전을 사용하고 있다면 java.time 패키지를 사용하는 것이 바람직하다.
// 현재 날짜
LocalDate localDate = LocalDate.now(); // 2024-08-27
// 특정 날짜
LocalDate localDate = LocalDate.of(2024, 08, 27);
LocalDate to String
String currentDate = DateTimeFormatter.ofPattern("yyyyMMdd").format(LocalDate.now());
String to LocalDate
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
LocalDate currentDate = LocalDate.parse("20240827", formatter);
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class DateUtil {
private static final String DEFAULT_DATE_PATTERN = "yyyyMMdd";
private static final String DEFAULT_TIME_PATTERN = "HHmmss";
private static final String DEFAULT_DATETIME_PATTERN = "yyyyMMddHHmmss";
/*생성자 사용하지 못하도록*/
public DateUtil () {}
/**
* 현재 날짜
*/
public static String getCurrentDate() {
return DateTimeFormatter.ofPattern(DEFAULT_DATE_PATTERN).format(LocalDate.now());
}
/**
* 현재 시간
*/
public static String getCurrentTime() {
return DateTimeFormatter.ofPattern(DEFAULT_TIME_PATTERN).format(LocalDate.now());
}
/**
* 현재 날짜 + 시간
*/
public static String getCurrentDateTime() {
return DateTimeFormatter.ofPattern(DEFAULT_DATETIME_PATTERN).format(LocalDateTime.now());
}
/**
* String을 java.time.LocalDate로 변환
*/
public static LocalDate stringToDate(String date) {
return stringToDate(date, DEFAULT_DATE_PATTERN);
}
public static LocalDate stringToDate(String date, String pattern) {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern(pattern);
return LocalDate.parse(date, formatter);
}
/**
* java.time.LocalDate를 String으로 변환
*/
public static String dateToString(LocalDate date) {
return dateToString(date, DEFAULT_DATE_PATTERN);
}
public static String dateToString(LocalDate date, String pattern) {
return DateTimeFormatter.ofPattern(pattern).format(date);
}
/**
* 내일
*/
public static String getNextDay() {
return afterDay(getCurrentDate(), 1);
}
/**
* 일자 더하기
*/
public static String afterDay(String date, int addDay) {
LocalDate localDate = stringToDate(date);
LocalDate returnDate = localDate.plusDays(addDay);
return dateToString(returnDate);
}
/**
* 월 더하기
*/
public static String afterMonthDay(String date, int addMonth) {
LocalDate localDate = stringToDate(date);
LocalDate returnDate = localDate.plusMonths(addMonth);
return dateToString(returnDate);
}
/**
* 월 초일
*/
public static String firstDayOfMonth(String date) {
LocalDate localDate = stringToDate(date);
LocalDate returnDate = localDate.withDayOfMonth(1);
return dateToString(returnDate);
}
/**
* 월 말일
*/
public static String lastDayOfMonth(String date) {
LocalDate localDate = stringToDate(date);
LocalDate returnDate = localDate.withDayOfMonth(localDate.lengthOfMonth());
return dateToString(returnDate);
}
/**
* 전월 말일
*/
public static String beforeMonthLastDay(String date) {
LocalDate localDate = stringToDate(date);
LocalDate returnDate = localDate.minusMonths(1);
returnDate = returnDate.withDayOfMonth(returnDate.lengthOfMonth());
return dateToString(returnDate);
}
/**
* 다음달 말일
*/
public static String afterMonthLastDay(String date) {
LocalDate localDate = stringToDate(date);
LocalDate returnDate = localDate.plusMonths(1);
returnDate = returnDate.withDayOfMonth(returnDate.lengthOfMonth());
return dateToString(returnDate);
}
/**
* 년 초일
*/
public static String firstDayOfYear(String date) {
LocalDate localDate = stringToDate(date);
LocalDate returnDate = LocalDate.of(localDate.getYear(), 1, 1);
return dateToString(returnDate);
}
/**
* 년 말일
*/
public static String LastDayOfYear(String date) {
LocalDate localDate = stringToDate(date);
LocalDate returnDate = LocalDate.of(localDate.getYear(), 12, 31);
return dateToString(returnDate);
}
/**
* 윤년 체크
*/
public static boolean leapYearCheck(String date) {
LocalDate localDate = stringToDate(date);
return localDate.isLeapYear();
}
}
REST API Response Format에 대한 고찰 (ResponseEntity, JSend, ResponseBodyAdvice) (0) | 2024.09.09 |
---|---|
Optional 사용에 대한 고찰 (사용목적, 메서드, 주의사항) (0) | 2024.09.06 |
PageHelper를 이용한 페이징처리 (Mybatis) (0) | 2024.08.27 |
[JAVA] - Iterator란 (27) | 2024.03.16 |
[JAVA] 스트림(Stream) 중간연산, 최종연산 메소드 - (2) (31) | 2024.02.12 |
댓글 영역