참고 사이트: https://meetup.toast.com/posts/130
1. 날짜는 해당 지역의 시각으로 반영되어 클라이언트에서 보여야 한다.
2. 절대 데이터는 UTC 기준 유닉스 시간이거나 오프셋 정보가 포함된 ISO-8601
3. 사용자 정보를 받아서 utc로 변환하는 작업을 파싱, utc나 iso-8601을 받아서 그 지역에 맞게 보여주는 작업을 포맷팅이라고 한다. 포맷팅은 대게 클라이언트에게 위임한다.
4. 자바스크립트의 Date는 자바 유틸의 영향을 받았다고 함. -> 불변 데이터가 아님.
5. parse, getHour, setHour 등의 메서드는 클라이언트 로컬 타임존의 영향을 받는다. 그러므로 사용자가 입력한 데이터를 이용해 그대로 Date 객체를 생성하거나 값을 지정한다면 그 데이터는 클라이언트의 로컬 타임존을 그대로 반영하게 될 것이다.
6. 자바스크립트는 임의로 타임존을 변경할 수 있는 방법을 제공하지 않는다.
7. Date.parse는 신뢰하지 않는다. ISO-8601포맷도 new Date에 넣으면 쓸 수 있다.
8. 쌩 자바스크립트 객체를 이용해서 서울에서의 현재 시각이 뉴욕에서 몇시인지 보여주고 싶다면 getTimeZoneOffse을 사용해서 new Date를 만들 때 직접 보정해서 넣어줘야 한다.
9. 타임존은 단순히 오프셋이 아니라 모든 오프셋 변경의 히스토리를 담고 있는 일종의 데이터베이스이다.
10. moment.js 를 사용하는 게 좋다.
11. utc는 영국 런던 기준 1972년부터 사용한 시간 우리나라는 utc + 9 기존엔 GMT를 사용함.