문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
programming:datetime [2016/11/11 12:46] kwon37xi |
programming:datetime [2022/03/15 11:00] (현재) kwon37xi |
||
---|---|---|---|
줄 2: | 줄 2: | ||
* [[https:// | * [[https:// | ||
- | ====== ISO 8601 ====== | + | ===== ISO 8601 ===== |
* [[https:// | * [[https:// | ||
* 보통 '' | * 보통 '' | ||
+ | |||
+ | ===== 초(second)와 ms,ns ===== | ||
+ | * [[database: | ||
+ | * 애초에 모든 시간을 초(second) 까지만 저장하게 하고 일관성있게 다루거나 | ||
+ | * 아니면 모든 시간을 ms/ns 까지 저장하게 하고 일관성 있게 다루는 것이 좋다. | ||
+ | * 이때 초 단위로 다룰 때는 메모리상의 시간 객체도 초 단위까지만 가지게 하고, 이를 JSON 등으로 전송할 때도 초단위까지만 전송하게 모든 것이 갖춰져야 한다. ms/ns 까지 다룰 때도 마찬가지 이다. | ||
+ | * 이렇게 하지 않으면 DB 저장시에는 초단위로 되지만 이를 MQ 나 API로 전송할 때는 ms/ns 단위까지 전송해서 다른 시스템이 다른 시간을 가지게 될 가능성이 생긴다. | ||
+ | * microservices 로 가면서 서로 다른 서비스가 비정규화된 데이터를 각자 저장할 때 시간 정보를 누구는 second 누구는 ms/ns 까지 저항하면 서로 다른 시간 정보로 인해 미묘하게 오류가 발생할 수 있다. | ||
+ | * 하나의 시스템에서 두가지 시간체계를 섞어서 사용하지 않는 것이 좋다. 특히 mysql 은 이 JDBC 드라이버에서 fractional second 를 전체를 truncate 시키거나 안시키거나 하므로 일관성이 있어야 한다. |