Locale.forLanguageTag

Locale.forLanguageTag("ko_KR"); // β†’ ""
Locale.forLanguageTag("ko_KR".replace("_", "-")); // β†’ ko_KR

Locale.forLanguageTag ν•¨μˆ˜μ—μ„œ ko-KR 이 μ•„λ‹Œ ko_KR κ³Ό 같이 μ–Έμ–΄(Langauge)와 κ΅­κ°€(Country)에 λŒ€ν•œ 정보λ₯Ό μ–Έλ”μŠ€μ½”μ–΄ ν˜•νƒœμ˜ λ¬Έμžμ—΄μ„ νŒŒλΌλ―Έν„°μ— λ„£λŠ” 경우 였λ₯˜κ°€ λ°œμƒν•˜μ§€ μ•Šκ³  λΉ„μ–΄μžˆλŠ” Locale이 λ§Œλ“€μ–΄μ§„λ‹€. λ”°λΌμ„œ, Locale.forLanguageTag ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄μ„œ λ‘œμΌ€μΌλ‘œ λ³€ν™˜ν•˜λ €λŠ” κ²½μš°μ—λŠ” μ–Έλ”μŠ€μ½”μ–΄(_)λ₯Ό ν•˜μ΄ν”ˆ(-)으둜 λ³€ν™˜ν•΄μ•Όν•œλ‹€.

LocaleUtils 와 StringUtils

String ν΄λž˜μŠ€μ— ν¬ν•¨λ˜μ–΄μžˆλŠ” replace ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄μ„œ IETF BCP 47 μ–Έμ–΄ νƒœκ·Έ ν˜•μ‹μœΌλ‘œ 변경해도 λ˜μ§€λ§Œ μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬ λ˜λŠ” ν”„λ‘œμ νŠΈμ—μ„œ 많이 μ‚¬μš©λ˜λŠ” λΌμ΄λΈŒλŸ¬λ¦¬μ— ν¬ν•¨λ˜μ–΄μžˆλŠ” μ•„λž˜μ™€ 같은 μœ ν‹Έ ν•¨μˆ˜λ“€μ„ μ΄μš©ν•΄λ„ λ¬Έμžμ—΄μ„ Locale둜 μ˜¬λ°”λ₯΄κ²Œ λ³€ν™˜ν•  수 μžˆλ‹€.

org.apache.commons.lang3.LocaleUtils.toLocale("ko_KR")l
org.springframework.util.StringUtils.parseLocale("ko_KR");