Have you verified that both, your Windows and Linux, have set your TZ to the same value?
You can verify the one for Linux by doing
ls -l /etc/localtime
For example, being in Georgia, your timezone should be reporting as
/usr/share/zoneinfo/America/New_York
IF that is a Desktop. On the other hand, if the computer is a server, it is likely set to UTC, even if your login setup is correctly set for your timezone via bashrc or other.
You can verify what the MotherBoard has as stored time by probing as follows:
sudo hwclock --show
To counter the changes by the Linux OS, which follows industry standards for time management, you could implement something like the following (with time obtained at moment of action being applied) as a shutdown action, to re-establish the âproperâ Windows MotherBoard time:
now=$(date '+%Y-%m-%d %H:%M:%S' )
sudo hwclock --set --date="${now}"
Outside the scope of your original question, if you want to know âeverythingâ about the systemâs treatment of the Hardware Clock, you can enter the following:
hwclock --verbose
For me, Desktop showing time as 14:19, it reports as follows:
hwclock from util-linux 2.37.2
System Time: 1780769834.280965
Trying to open: /dev/rtc0
Using the rtc interface to the clock.
Last drift adjustment done at 1617305660 seconds after 1969
Last calibration done at 1617305660 seconds after 1969
Hardware clock is on UTC time
Assuming hardware clock is kept in UTC time.
Waiting for clock tick...
...got clock tick
Time read from Hardware Clock: 2026/06/06 18:17:15
HW clock time : 2026/06/06 18:17:15 = 1780769835 seconds since 1969
Time since last adjustment is 163464175 seconds
Calculated Hardware Clock drift is 0.000000 seconds
2026-06-06 14:17:14.061129-04:00
So, it would seem that Windows does not follow âstandardâ conventions regarding the management of time settings on computers.