[java] Apache Commons Lang 에서 제공하는 유용한 날짜 및 시간 유틸리티 함수

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 공식 문서를 참조하시기 바랍니다.