2016-10-22 8 views
1

Islamic Hjiri to Gregorian Date에서 변환을 수행하려면 time4A을 사용하고 그 반대의 경우도 마찬가지입니다. 포맷 방법을 찾을 수 없습니다. Hijri 날짜을 "yyyy/mmm/dd"패턴으로 지정하십시오. 1437-05-03서식을 지정하는 방법

그래서, 를 포맷 할 수있는 방법 : 내가 좋아하는 어떤 것을 필요

 CalendarVariant variant = 
        PlainDate.of(2016, 02, 12) 
          .transform(HijriCalendar.class, HijriCalendar.VARIANT_UMALQURA); 

System.out.println(variant.toString()); 

나는이 AH-1437-05-03[islamique-umalqura]

을 가지고 : 여기

는 회교
에 그레고리오 변환하는 코드입니다 Hijri 날짜?

답변

0

늦게 답변드립니다. 즉각적인 답장을받지 못하면 Time4J의 이슈 트래커에서 직접 질문 할 수 있습니다. 귀하의 질문에 대해

, 두 지점 :

은) 추상 인터페이스 유형이지만 구체적인 유형을 사용하지 마십시오. 여기에 CalendarVariantHijriCalendar으로 바꾸십시오. 그렇지 않으면 미해결 제네릭으로 인해 원시 유형을 처리하게됩니다.

b) 포맷터 클래스 ChronoFormatter은 포맷팅 (및 구문 분석)을 처리 할 수 ​​있습니다. 패턴 문자열, 패턴 유형, 로케일 및 연대기와 같은 정보 만 입력하면됩니다. 또한 불변이고 정적 최종 상수에 저장할 수 있습니다. 예 :

HijriCalendar hijriDate = 
    PlainDate.of(2016, 02, 12).transform(
     HijriCalendar.class, 
     HijriCalendar.VARIANT_UMALQURA 
    ); 
ChronoFormatter<HijriCalendar> hf = 
    ChronoFormatter.ofPattern(
     "yyyy-MM-dd", // mmm as given by you would be in minutes in CLDR-standard 
     PatternType.CLDR, 
     Locale.ROOT, 
     HijriCalendar.family() 
    ); 
System.out.println(hf.format(hijriDate)); // 1437-05-03 

주어진 예제는 표준 숫자를 사용하는 숫자 표현 만 원하기 때문에 루트 로케일을 사용합니다. 물론 원하는 경우 다른 숫자 시스템을 사용하여 서식을 지정할 수도 있습니다 (로케일이 중요하거나 심지어 explicit format attribute으로 설정).