[Java/Javascript] 글로벌 타임존 다루기

Ericamoyed·2022년 1월 19일
0

개발한장

목록 보기
9/22

Js 타임존 다루기 자료 (Feat. Moment library)

https://meetup.toast.com/posts/130

Java Zoned vs. Offset vs. Local DateTime

https://perfectacle.github.io/2018/09/26/java8-date-time/
https://juneyr.dev/2018-12-27/java8-datetime
https://www.daleseo.com/java8-zoned-date-time/

Convert ZonedDateTime to TimeStamp

https://codechacha.com/ko/java-convert-zoneddatetime-to-timestamp/


오늘 안 놀라운 사실: MySQL TIMESTAMP 필드가 나는 당연히 1480230948 이런 BigInteger 숫자를 저장하는 필드인줄 알았는데, 그냥 DATETIME과 유사하게 2021-08-02 이런 일반적인 date structure가 들어간다.

  • 근데 4byte라서 2038년정도까지 밖에 저장이 안되고, 저장 시 time_zone 시스템 변수에 입력된 시간대 정보를 기반으로 데이터를 입력받아 그 정보를 UTC로 변환하여 저장 한다고 해서, 이미 연산을 거친 데이터를 넣기엔 조금 무리가 있다.

  • 그래서 TIMESTAMP 대신에 BigInt로 millisecond 정보를 넣으려고함.

  • 글로벌 대응은 너무너무 힘들다..

  • js에는 오픈된 마땅한 친구가 없다. 라이브러리를 사용해야만 한다.

  • Java의 ZonedDateTime 처럼 zone 정보를 모델에 세팅해서 사용할 수 있는 건 요 라이브러리가 유일했다. 하지만 그거 외에 별 장점은 없음. 별로임

  • moment.js -> 얘도 타임존 알아내거나, datetime formatting 적용하거나, 각 date의 차이를 알아내는데 유용하다.

  • 이거 두개 없이는 JAva랑 javascript간 zone 정보를 주고 받으며 활용하기 굉장히 어렵다.. 물론 zoneid를 모델에 안합치고 그냥 별개 String 필드를 하나 파서 인터페이스 구성할거라면 상관 없음.

profile
꿈많은 개발자, 일상 기록을 곁들인

0개의 댓글