ESP32 deepsleep store time

I have an ESP32 running on batteries with display.

So, initially, esp32 connects to the WiFi, fetches time from ntp server, turns off WiFi, shows time on the display and then sleep after 30 sec.

The issue is - The esp32 is later woken up by an external button, and I want it to display time, without connecting to the internet. To do this I either need to store time or if its implemented in the time library?

I don't know if I need to store time (if that's what is required) and later display it without connecting to the internet, or use the now() function of time library to fetch the time after waking up and show it on the screen?

After every hour or so, as per requirements, I do again connect to the internet to transfer data, but I don't want to connect to the internet every time I have to show just the time upon waking up, plus it take few seconds to connect and fetch time, so I was wondering if there is any way to store and fetch time locally, syncing the local clocks every few hours.

Thoughts or pointers please.

Why not use the 3rd core and the internal RTC of the ESP32 to keep time during deep sleep modes?

Thanks for the reply.

I'm not sure how to do that, point me somewhere please?

In the example of deep sleep with timer, I can see to wakeup ESP32 after every x seconds, but does it keep time?

So I suppose, before putting esp32 to deep sleep, I have to store time in the nvs, then start a timer in ULP, then whenever it wakes up by whatever reason, add the timer count to the stored time?
I'm really hoping there is a better solution.

I am sure that with a little research you can find that the issue of using the ULP and to keep RTC time are not all that complicated.

Honestly I tried, I couldn't. Ill try.

Have you tried https://esp32.com/?

For those who are in same boat, this should get you started -