Evet bunun sebebi Windows ve GNU/Linux'un farklı zaman anlayışları.
Donanımınızda RTC(real time clock yani gerçek zaman saati) isminde bir parça vardır. Zaman bilgisi bu parçada depolanır. Ve siz bilgisayarınızı kapatsanız bile bu parça zamanı tutmaya devam eder. Sorunun sebebine değinmeden önce bir şeyden bahsetmek istiyorum.
UTC; İngiltere, Greenwich'teki 0° meridyenindeki zaman dilimidir. Genelde ülkelerde yerel saatler, UTC referans alınır. UTC+3 gibi. Bu durumda saat, Greenwich'tekinden 3 saat ileride demektir. Bizim burası UTC+3'tür yani burada saat 0° meridyenindekinden 3 saat ileridir.
Bu gerekli bilgiyi verdiğime göre sorunun sebebine geçebilirim. Windows, RTC donanımında depolanan bilginin bulunduğunuz yere ait olduğunu varsayar ve saat bilgisi olarak bunu gösterir. Fakat Linux RTC'de depolanan saati UTC olarak depolar ve üzerine 3 saat daha ekleyerek size gösterir. Bu yüzden 3 saatlik bir kayma yaşarsınız. (Ya da RTC modülünde depolanan saati üzerine 3 saat ekleyerek göstermek için 3 saat geri sarar. Bu, Windows'un 3 saat geri göstermesine sebep olur. Yukarıdaki durum, Linux'un 3 saat ileri göstermesine sebep oluyordu.)
Bunun çözümü için Linux'e şu komutu girerseniz RTC modülünde UTC+3 olarak depolar ve bu sorunu ortadan kaldırır.
timedatectl set-local-rtc 1
Başka bir deyişle bu komut, Linux'un RTC'de yerel saati depolamasını sağlar ve sorun ortadan kalkar.