이번 글은 그... 뭐... 별 내용은 아니구요,, 별 내용 맞아요...(진짜 항상 이해안되서 넘어갔던걸 이번에 아주 꽉 붙잡고 안놔줄라고 아주 그냥 별짓을 다했는데 예... 뭐... 그랬다구요......)
제목 그대로에요...
Date객체는 타임존이 적용되지 않아요.
우리가 흔히 DateFormatter를 지정해줄 때 timezone도 적용하는 경우가 있어요.
//어쩌구 저쩌구 코드들
dateFormatter.timezone = TimeZone(identifier: "Asia/Seoul")
//저쩌구 어쩌구 코드들
알고보니까 이게 string으로 뽑아낼때만 의미가 있는거더라구요.
공식문서에 아래와 같이 정의가 되어있죠?
그렇다네요...
달력(그레고리력, 율리우스력등)이나 타임존("Asia/Seoul", "America/New_York"등)으로부터
독립적인 시간의 특정한 지점이다. 라고 합니다.
맞아요.
Date객체는 우리가 내부적으로 계산할때 절대적인 기준(UTC인거같아요 한국 기준시보다 9시간 전으로 출력됩니다.)으로
여기저기서 쓰다가 실제로 뷰에 출력해줄때만 타임존을 적용해서 표시하는게 맞겠죠?
안그러면 막 매번 타임존 적용해주거나 전역으로 타임존 적용해주거나 기타등등
생각만해도 아찔한 상황들이 펼쳐질거같아요...
여러분은 저같은 실수 하지마시고.. 꼭! 공식문서는 꼼꼼히 뇌에 새기면서 읽도록 합시다!
(정말 당연하다면 당연한건데 이런 실수를 해버렸네요... 그래도 공부했잖아, 한잔해. 도움주신분들 감사합니다!!!!!)
아래는 공식문서 링크입니다.
https://developer.apple.com/documentation/foundation/date
Date | Apple Developer Documentation
A specific point in time, independent of any calendar or time zone.
developer.apple.com
'공부 > Apple' 카테고리의 다른 글
[Swift] 초미세팁 - ForEach의 redraw (0) | 2025.02.17 |
---|---|
[Swift] xcconfig, gitignore 파일 만들고 안전하게 적용하기 (0) | 2024.12.22 |
[Swift] Codingkey에 모든 키가 있어야 할까? (0) | 2024.12.02 |
[Swift] Xcode AI코드 에러(긴급) (0) | 2024.11.22 |
[Swift] frame과 bounds (0) | 2024.10.19 |