본문 바로가기
공부/Apple

[Swift] Calendar와 DateFormatter의 관계

by 초코팅촉 2025. 3. 3.
728x90
반응형

이번글은 그냥 푸념, 잡념, 뭔가의 깨달음, 그냥 뻘소리일수도 있습니다.

 

최근에 어느 회사에서 인턴을 하면서 커스텀 캘린더를 만들 기회가 있었습니다.

 

뭐랄까 그냥 처음에는 글을 읽기보단 그냥 긁어와서 붙여넣기 바빴는데요,(개발자는 복붙만 잘하면 된대요!)

하다 보니까 뭔가 잘 안되기도 하고 욕심이 생기기도 해서 다시 좀 찾아보고 있습니다.

하여 최근에 든 생각을 찌끄린 글입니다.

 

1. 개인적인 생각

Calendar 객체는 date, dateComponent 등으로 반환을 합니다.

그래서 제가 느끼기엔 주로 뭔가 실제로 값을 사용해야 하는? 뭔가 실존하는 값이 나오는?

뭐라고 해야 될까요... 아마 DateFormatter 얘기를 들어보시면 느낌이 오시지 않을까

그냥 뭔가 실제로 데이터를 사용할 때에 Calendar를 쓰는 게 맞는 거 같고요,

 

DateFormatter는 말 그대로 Date의 Format을 지정해 주는 용도로 쓰는 게 맞는 거 같다고 생각합니다.

저는 항상 이름에 답이 있지 않을까?라고 생각하는 사람이라(물론 전혀 생각하지 못할 때도 있습니다만)

이름에 구지구지 Formatter라는 말이 있으면 그건 형식을 지정해 줄 때 사용하는 게 맞겠죠?

 

물론 그래서 이 글을 쓰면서 추가로 찾아봤습니다. 

 

2. 정의

"역시나"랄까요? Calendar와 DateFormatter의 정의를 찾아보니 다음과 같았습니다.

Calendar의 정의를 해석해 보면

"달력 단위와 절대 시점 간의 관계를 정의하여 날짜 계산 및 비교 기능을 제공합니다."

달력 단위라 함은 년, 월, 일, 시, 분 등등을 얘기하는 거고요,

절대 시점25년 1월 23일 같이 특정일을 지정하는 걸 말합니다.

 

달력 단위를 지정한 다음에 직접 값을 넣는 계산도 되고요, 당연히 비교도 됩니다.

해서 제가 위에서 말씀드렸던, 뭔가 값을 실제로 사용하는 느낌을 받았던 게 여기에 해당됩니다.

 

DateFormatter의 정의는 다음과 같습니다.

날짜와 해당 텍스트 표현을 변환하는 포맷터입니다.

말 그대로 데이터를 화면에 텍스트로 표시해 주겠죠? 달력이 됐던, 그냥 날짜만 표시하던, 하다못해 시간도 있을 거고요.

우리가 Calendar를 통해서 얻은 Date값을 그냥 그대로 출력하면

Thursday, January 23, 2025 at 12:00:00 AM Korean Standard Time

이렇게 나옵니다.

때문에 우리에게 필요한 부분만 떼내어 표시해 줘야겠죠? 물론 번역도 되어야 합니다.

 

그럴 때 이 DateFormatter를 사용해서 Date의 Format을 지정해 주는 겁니다.

 

3. 결론

뭐 결론이랄 게 있나요,

Calendar를 써서 여러 값들을 이러쿵저러쿵 한 다음에 화면에 출력할 때 DateFormatter를 쓴다라고 이해하시면 되는 거죠...

 

뭐랄까...

먼 길을 돌고 돌아서 결국 혼자 깨달고나서 확인해 보니 내가 맞았다! 이런 결론에 도달하게 되었는데요,

여러분은 저처럼 공부하지 마시고 꼭 애플 공식 문서와 짱친 먹으세요ㅎㅎ....

(다시 보니 선녀더라...)

728x90
반응형