I was puzzled as to why my Garmin Forerunner 735XT stubbornly persisted in showing the wrong time even when it was connected to the Garmin app on my phone via Bluetooth.
It turns out that it needs to use GPS to update. This makes sense given that GPS is indeed an excellent source of truth for time
From the FAQs on the Garmin site, the solution is to:
Acquire a satellite signal: Watches that have a GPS receiver will update the time after acquiring a satellite signal if the "Set Time" setting is set to "Auto". Go outdoors and access an outdoor activity profile, such as Run. The time will update when the watch acquires a satellite signal.