본문 바로가기

카테고리 없음

[iOS 앱개발 55일차] 시간 표기법 변환과 hourIndex 이슈 / 24시 표기법 변환 swift

오늘 배운 내용은 시간 표기법 변환과 관련된 hourIndex 이슈에 대한 것입니다. 특히, 사용자 인터페이스에서 시간을 선택할 때 발생하는 일반적인 문제와 이를 해결하는 방법에 초점을 맞췄습니다.

문제 상황

  • 사용자가 시간을 선택하는 UI 컴포넌트(예: UIPickerView)에서 "오전/오후"와 "시간"을 선택할 때, 선택한 시간을 24시간 형식으로 변환하여 표시해야 하는 경우가 있습니다.
  • UIPickerView에서 오전/오후를 나타내는 meridiem과 시간을 나타내는 hourIndex를 사용하여 사용자가 선택한 시간을 처리합니다.
  • 문제는 hourIndex가 0부터 시작하여 1시를 0, 2시를 1로 표현하는 방식으로 인덱스가 설정되어 있어, 실제 시간과 1시간 차이가 나는 문제가 발생할 수 있습니다.

해결 방법

  • 사용자가 선택한 시간(hourIndex)과 분(minuteIndex), 그리고 오전/오후(meridiemIndex)를 기반으로 실제 시간을 계산할 때, hourIndex에 1을 더해 실제 시간으로 변환합니다.
  • 오전/오후를 고려하여 24시간 형식으로 시간을 변환할 때는 다음과 같은 로직을 적용합니다:
    • "오후"인 경우, hour가 12가 아니면 12를 더해 24시간 형식으로 변환합니다. 예를 들어, 오후 1시(hourIndex 0)는 13시가 됩니다.
    • "오전"인 경우, hour가 12면 0시로 처리합니다. 즉, 오전 12시는 24시간 형식에서 0시입니다.
  • 이렇게 계산된 시간을 문자열 형식으로 변환하여 UI에 표시합니다.

 

학습 포인트

  • 시간 관련 UI 컴포넌트를 사용할 때는 인덱스와 실제 시간 사이의 변환 로직을 주의 깊게 고려해야 합니다.
  • 특히, 12시간 표기법과 24시간 표기법 간의 변환을 처리할 때는 오전/오후와 시간 값의 범위를 정확히 이해하고 있어야 합니다.
  • 사용자 경험을 개선하기 위해, 시간 선택 컴포넌트에서 사용자가 선택한 시간을 명확하고 정확하게 표시하는 것이 중요합니다.

이러한 이슈를 해결하는 과정에서 시간 관련 데이터를 처리하는 데 있어 더 깊은 이해를 얻을 수 있었으며, 사용자 인터페이스를 설계하고 구현할 때 세심한 주의가 필요함을 다시 한번 깨달았습니다.