Java&Jsp&Servlet2024. 8. 27. 10:50

DateTimeFormatter 을 사용해야 하는 이유? ( by ChatGPT)

  • DateTimeFormatter: 자바 8 이상에서 도입된 java.time 패키지는 국제 표준 ISO-8601을 기본으로 하여 설계되었습니다. 따라서 DateTimeFormatter를 사용하면 국제 표준에 더 잘 부합하는 코드를 작성할 수 있습니다.
  • SimpleDateFormat: 자바 초기 버전에서 도입된 만큼 현대적 표준을 따르지 않는 부분이 있습니다.

특히 SimpleDateFormat 은 스레드에 안전하지 않는다고 한다.

그래서, DateTimeFormatter 을 이용한 날짜, 시간 더하기

package study.d4emon.test;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAdjusters;

public class DateAddLocaleDate {

	public static void main(String[] args) {
		
        // LocalDate
        LocalDate localeToday = LocalDate.now();

        // Firtday of Month
        LocalDate firstDayOfMonth = localeToday.with(TemporalAdjusters.firstDayOfMonth());

        // DateTimeFormmater
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

        // today
        String today = localeToday.format(formatter);

        System.out.println("Today : " + today);

        // firstDay
        String firstDay = firstDayOfMonth.format(formatter);
        System.out.println("FirstDay : " + firstDay);

        // 하루 더하기
        String addDate = localeToday.plusDays(+1).format(formatter);
        System.out.println("Add 1 Day : " + addDate);

        // 한달 더하기
        addDate = localeToday.plusMonths(+1).format(formatter);
        System.out.println("Add 1 Month : " + addDate);

        // 1년 더하기
        addDate = localeToday.plusYears(+1).format(formatter);
        System.out.println("Add 1 year : " + addDate);

        // 시분초 까지 표시하려면
        System.out.println("시분초 까지 표시하려면 ....");
        formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        LocalDateTime now = LocalDateTime.now();
        System.out.println("DateTime: " + now.format(formatter));

		// 15초 더하기
        LocalDateTime nextSecond = now.plusSeconds(15); 
        System.out.println("Add 15 Sec: " + nextSecond.format(formatter));

		// 30분 더하기
        LocalDateTime nextMinute = now.plusMinutes(30); 
        System.out.println("Add 30 Min: " + nextMinute.format(formatter));

		// 1시간 더하기
        LocalDateTime nextHour = now.plusHours(1); 
        System.out.println("Add 1 Hour : " + nextHour.format(formatter));
        
	}

}

 

Posted by 비니미니파파