Recently, in an Oracle Linux (either 6 or 7) based virtual machine, I faced any issue where system uptime was apparently wrong.
# who -b
system boot 2019-07-24 13:21
# last reboot
reboot system boot 3.8.13-44.1.4.el Wed Jul 24 13:21 - 23:24 (10:03)
wtmp begins Wed Aug 22 11:09:06 2018
# hwclock --show
Wed 24 Jul 2019 11:26:11 PM CEST -0.956063 seconds
# uptime
23:24:36 up 10:03, 3 users, load average: 0.63, 0.51, 0.68
# cat /proc/uptime
36320.87 267407.58
The system was indeed rebooted at 13:21 which is correctly listed in "who -b" but somehow "last reboot" and "uptime" is only showing "10:03". Hardware clock value is correct and uptime value is updating with time with every minute as expected. I didn't got the chance to re-look at the issue in detail but may soon have to work on it.
Any suggestions why this might have happened and how to rectify it? Thanks.