[iOS] 아이폰 언어 태국어로 사용 시, 실행 오류 이슈
Unity3D/Trouble Shooting / 2020. 9. 14. 14:06
[문제원인]
- 유니티에서 사용하는 C#에서 DateTime을 사용하여 달력정보를 가져올 경우 태국어에서 문제 발생.
- 역법의 차이에서 문제가 발생.
- 대부분의 국가는 그레고리력을 사용중이지만, 태국은 태국역법을 사용하여, 543년의 차이 발생.
* 표준 불력은 석가모니 입적인 기원전 544년을 기준으로 사용. 태국은 이 표준불력에서 1년의 차이 발생.
- 서버에서 내려주는 달력정보 스트링을 파싱하는 과정에서 태국어일 경우 문제 발생.
- 스트링 포맷의 차이를 제대로 인지하지 못하고 파싱 실패. (표기 방법 상이)
[해결방안]
- 클라이언트가 시스템 시간정보를 읽어 올 때, 태국어 예외 처리.
DateTime lTime = DateTime.Now;
if (System.Threading.Thread.CurrentThread.CurrentCulture.Name == "th-TH"
&& Application.platform == RuntimePlatform.IPhonePlayer)
{
lTime = lTime.AddYears(-543);
}
서버에서 사용하는 그레고리력으로 통일
- 서버에서 내려주는 달력정보의 스트링을 파싱하는 함수 변경. (포맷을 명확히 지정)
String lCalendar = "";
DateTime.Parse(lCalendar) -> DateTime.ParseExact( lCalendar, "yyyy-MM-ddTHH:mm:ss.fffZ", null);
서버에서 내려주는 포맷을 일치 시킬수 있도록 주의
반응형