사용자 도구

사이트 도구


programming:datetime

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
programming:datetime [2016/11/11 12:46]
kwon37xi
programming:datetime [2022/03/15 11:00] (현재)
kwon37xi
줄 2: 줄 2:
   * [[https://azure.microsoft.com/en-us/blog/is-your-code-ready-for-the-leap-year/|윤년 버그 대응법]]   * [[https://azure.microsoft.com/en-us/blog/is-your-code-ready-for-the-leap-year/|윤년 버그 대응법]]
  
-====== ISO 8601 ======+===== ISO 8601 =====
   * [[https://ko.wikipedia.org/wiki/ISO_8601|ISO 8601]] 날짜 표현 국제 표준   * [[https://ko.wikipedia.org/wiki/ISO_8601|ISO 8601]] 날짜 표현 국제 표준
   * 보통 ''2013-10-11T10:31:45.453+09:00'' 같은 형태로 표현됨.   * 보통 ''2013-10-11T10:31:45.453+09:00'' 같은 형태로 표현됨.
  
 +
 +===== 초(second)와 ms,ns =====
 +  * [[database:mysql:datetime|MySQL DATETIME type]]을 비롯해 날짜와 시간 정보를 저장할때 fractional second(ms, ns)부분 저장에 따라 반올림 현상으로 시간이나 날짜바 바뀌는 현상이 발생할 수 있다.
 +  * 애초에 모든 시간을 초(second) 까지만 저장하게 하고 일관성있게 다루거나
 +  * 아니면 모든 시간을 ms/ns 까지 저장하게 하고 일관성 있게 다루는 것이 좋다.
 +  * 이때 초 단위로 다룰 때는 메모리상의 시간 객체도 초 단위까지만 가지게 하고, 이를 JSON 등으로 전송할 때도 초단위까지만 전송하게 모든 것이 갖춰져야 한다. ms/ns 까지 다룰 때도 마찬가지 이다.
 +    * 이렇게 하지 않으면 DB 저장시에는 초단위로 되지만 이를 MQ 나 API로 전송할 때는 ms/ns 단위까지 전송해서 다른 시스템이 다른 시간을 가지게 될 가능성이 생긴다.
 +  * microservices 로 가면서 서로 다른 서비스가 비정규화된 데이터를 각자 저장할 때 시간 정보를 누구는 second 누구는 ms/ns 까지 저항하면 서로 다른 시간 정보로 인해 미묘하게 오류가 발생할 수 있다.
 +  * 하나의 시스템에서 두가지 시간체계를 섞어서 사용하지 않는 것이 좋다. 특히 mysql 은 이 JDBC 드라이버에서 fractional second 를 전체를 truncate 시키거나 안시키거나 하므로 일관성이 있어야 한다.
programming/datetime.1478837767.txt.gz · 마지막으로 수정됨: 2016/11/11 12:46 저자 kwon37xi