Apache Commons Lang은 자바 개발자들이 공통적으로 사용하는 유틸리티 함수 모음집입니다. 이 중에서 날짜와 시간 처리에 관련된 함수들은 매우 유용하며, 개발자가 간단하게 날짜와 시간을 다루고 변환하는 데 도움이 됩니다.
이번 포스트에서는 Apache Commons Lang에서 제공하는 몇 가지 특히 유용한 기능과 그 사용 예시를 소개하겠습니다.
1. DateUtils 클래스
DateUtils
클래스는 다양한 날짜 조작 작업을 위한 메소드를 제공합니다.
1.1 addYears(Date, int)
메소드
이 메소드는 주어진 날짜에 일정 개수의 연(Year)을 더할 수 있습니다. 예를 들어, 현재 날짜에서 3년을 더하려면 다음과 같이 사용할 수 있습니다.
Date currentDate = new Date();
Date newDate = DateUtils.addYears(currentDate, 3);
1.2 truncate(Date, int)
메소드
이 메소드는 주어진 날짜의 시간 부분을 제거하여 “정각” 형태로 만들어줍니다. 예를 들어, 현재 시간을 다음과 같이 “정각”으로 변환할 수 있습니다.
Date currentTime = new Date();
Date truncatedTime = DateUtils.truncate(currentTime, Calendar.HOUR_OF_DAY);
2. DurationFormatUtils 클래스
DurationFormatUtils
클래스는 시간 간격을 보다 읽기 쉬운 형태로 포맷팅하는 데 사용됩니다.
2.1 formatDurationWords(long, boolean, boolean)
메소드
이 메소드는 주어진 시간 간격을 단어로 표현된 형태로 포맷팅 해줍니다. 두 번째 매개변수로 true
를 전달하면, “약”이라는 접두사가 추가됩니다. 세 번째 매개변수로 true
를 전달하면, 단수형 단위가 사용됩니다.
long duration = 3600000; // 1시간
String formattedDuration = DurationFormatUtils.formatDurationWords(duration, true, false);
System.out.println(formattedDuration); // 약 1 hour
3. StopWatch 클래스
StopWatch
클래스는 실행 시간을 측정하는 데 사용됩니다.
3.1 start()
및 stop()
메소드
start()
메소드는 시간 측정을 시작하고, stop()
메소드는 시간 측정을 중단합니다. 아래는 StopWatch
를 사용하는 간단한 예제입니다.
StopWatch stopWatch = new StopWatch();
stopWatch.start();
// 시간 측정 대상 코드
stopWatch.stop();
System.out.println("실행 시간: " + stopWatch.getTime() + "ms");
위 예제에서 getTime()
메소드는 경과 시간을 밀리초 단위로 반환합니다.
결론
Apache Commons Lang에서 제공하는 날짜와 시간 유틸리티 함수들은 자바 개발자들에게 매우 유용합니다. DateUtils
, DurationFormatUtils
, StopWatch
클래스를 사용하면 간단하게 날짜와 시간을 조작하고 측정할 수 있습니다.
더 자세한 정보는 Apache Commons Lang 공식 문서를 참조하시기 바랍니다.