서수형 표시(11일, 21일, 23일)로 날짜 형식 지정
날짜를 처리할 때 출력이 필요한 경우가 많습니다. "11일", "21일"과 같은 서수 표시기가 있는 달의 날짜 또는 "23일". 단순히 월의 숫자 날짜를 사용하는 것만으로도 충분하지만 서수 표시기를 추가하면 날짜의 명확성과 가독성이 향상됩니다.
제공되는 Java 스니펫은 SimpleDateFormat을 사용하여 월의 날짜를 숫자로 추출할 수 있지만 어떻게 적절한 서수 표시기를 포함하도록 이 숫자의 형식을 지정해야 합니까?
Guava를 사용한 솔루션 라이브러리
Guava 라이브러리는 날짜에 서수 표시기를 추가하는 우아하고 효율적인 방법을 제공합니다. 다음은 제공된 스니펫의 수정된 버전입니다.
import static com.google.common.base.Preconditions.*; String getDayOfMonthSuffix(final int n) { checkArgument(n >= 1 && n <= 31, "illegal day of month: " + n); if (n >= 11 && n <= 13) { return "th"; } switch (n % 10) { case 1: return "st"; case 2: return "nd"; case 3: return "rd"; default: return "th"; } }
이 함수는 날짜를 나타내는 정수를 사용하고 적절한 서수 표시기를 문자열로 반환합니다. Guava의 Preconditions 클래스의 checkArgument 메서드를 사용하여 날짜가 1부터 31(포함) 사이의 유효한 값인지 확인합니다.
11일부터 13일 사이의 날짜에 대해 함수는 "th"를 반환합니다. 왜냐하면 이 요일은 항상 다음을 사용하기 때문입니다. "th" 접미사. 다른 날에는 모듈로 연산(%)을 사용하여 해당 날짜의 마지막 숫자를 확인합니다.
사용 예
이 기능을 사용하려면 하루를 넘기면 됩니다. 이달의 논쟁으로. 예:
int dayOfMonth = 11; String ordinalIndicator = getDayOfMonthSuffix(dayOfMonth); // "th"
결론
날짜에 서수 표시기를 추가하는 것은 날짜 형식 지정의 일반적인 요구 사항이며 Guava 라이브러리를 사용하면 간단합니다. 그리고 효율적인 솔루션. 이 개선된 스니펫은 원래 답변에 언급된 잠재적인 버그를 제거하고 1부터 31까지의 날짜에 올바른 서수 표시기가 추가되도록 합니다.
위 내용은 Java의 날짜 숫자에 서수 표시기(st, nd, rd, th)를 효율적으로 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!