Burada bazı öneriler var
Veri tabanı Sütun Tipleri
Veri tabanında tarih ve saat metin (text) olarak asla saklanmamalı. Bu iş için sütun tipleri var. Sütun tipi olarak ta UTC saklamak daha iyi. PostgreSQL için TIMESTAMP WITH TIME ZONE kullanılabilir.
Veri tabanı Sunucusu
Veri tabanının kendisi de UTC saat diliminde çalışmalı. Şeklen şöyle. Böylece veri tabanına yapılan select işlemleri de kolaylaşır.
Not : Docker zaten varsayılan ayar olarak UTC ile başlıyor.
Java
Java kullanıyorsak eski java.util.Date ve java.util.Calendar sınıfları kullanılmamalı. Yeni Java sınıfları şöyle
Class String representation Time zone applicabilityInstant 2021-05-27T16:05:48.147558500Z Always UTCLocalTime 21:35:48.284556200 NALocalDate 2021-05-27 NALocalDateTime 2021-05-27T21:35:48.286557 NAOffsetTime 21:35:48+05:30 SupportsOffsetDateTime 2021-05-27T21:35:48.288557+05:30 SupportsZonedDateTime 2021-05-27T21:35:48.291556100 Supports (DST aware)
+05:30[Asia/Colombo]
Hibernate
Hibernate Kullanıyorsak veriyi UTC olarak kaydetmek için şöyle yaparız
#for plain hibernatehibernate.jdbc.time_zone=UTC#for Spring boot jpaspring.jpa.properties.hibernate.jdbc.time_zone=UTC
Hiç yorum yok:
Yorum Gönder