>Java >java지도 시간 >Java의 날짜 형식에 서수 표시기(st, nd, rd, th)를 어떻게 추가할 수 있습니까?

Java의 날짜 형식에 서수 표시기(st, nd, rd, th)를 어떻게 추가할 수 있습니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-17 07:43:25592검색

How Can I Add Ordinal Indicators (st, nd, rd, th) to Day-of-Month Formatting in Java?

서수 표시기로 날짜 형식 지정

SimpleDateFormat을 사용하면 날짜 형식을 숫자(dd)로 지정할 수 있습니다. 서수 표시기를 포함하는 방법을 제공하지 않습니다(예: 11일, 21일, 23일).

이를 달성하려면 논리와 문자열 조작을 조합하여 사용할 수 있습니다. 예는 다음과 같습니다.

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";
    }
}

이 함수는 해당 월의 특정 날짜를 기준으로 적절한 서수 표시기를 반환합니다. 예를 들어, getDayOfMonthSuffix(11)는 "th"를 반환합니다.

테이블 기반 솔루션은 피하세요

테이블을 사용하여 요일을 매핑하는 것이 편리해 보일 수 있습니다. 서수 지표에서는 이 접근 방식으로 인해 버그가 발생할 위험이 있습니다. 예를 들어 테이블이 누락되었거나 오류가 있는 경우 잘못된 결과가 발생할 수 있습니다. 위에서 설명한 코드 접근 방식은 논리를 사용하여 접미사를 동적으로 계산함으로써 이러한 잠재적인 문제를 제거합니다.

위 내용은 Java의 날짜 형식에 서수 표시기(st, nd, rd, th)를 어떻게 추가할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.