One of my first hardware projects for RPi were Serial Shield expansion boards. They provide easily accessible serial interfaces with voltage level conversion for interfacing with 5V logic and a battery backed-up RTC clock which enables hardware clock support in Raspbian.
My Raspberries are expanded with DS3231 I2C realtime clock. It’s a very simple solution, as only required external component is a backup battery (crystal is integrated into the chip!). And it’s also claimed to be very accurate
By default, Raspbian installation uses “fake hwclock” to read previously stored date/time from file just before clock is synced by NTP client. We’re going to switch to “full” hwclock, first ensuring that our RTC is seen by kernel.