Date

The usual answer seems to be setting up NTP so that the router resets it clock when it reboots.

There are a couple good wiki pages on it. If you already have a local NTP server point it to that. Otherwise there are scripts available to have it use pool.ntp.org and periodically update which server it’s querying.

I ended up with something like this after simplifying one of the examples:

[admin@MikroTik] > /system scheduler
[admin@MikroTik] /system scheduler> print
Flags: X - disabled
 #   NAME   START-DATE  START-TIME   INTERVAL             ON-EVENT    RUN-COUNT
 0   ;;; Check and set NTP servers
     Che... jan/01/1970 16:00:00     12h                  setntppool          8
[admin@MikroTik] /system scheduler> .. script 
[admin@MikroTik] /system script> print[admin@MikroTik] /system script> print    
Flags: I - invalid
 0   name="setntppool" owner="admin" policy=read,write,test
     last-started=jul/16/2011 16:00:00 run-count=9
     source=
       # Check and set NTP servers - "setntppool"

       # Resolve the two ntp pool hostnames
       :local ntpipa [:resolve "0.us.pool.ntp.org"];
       :local ntpipb [:resolve "1.us.pool.ntp.org"];

       # Get the current settings
       :local ntpcura [/system ntp client get primary-ntp];
       :local ntpcurb [/system ntp client get secondary-ntp];

       # Debug output
       :put ("Old: " . $ntpcura . " New: " . $ntpipa);
       :put ("Old: " . $ntpcurb . " New: " . $ntpipb);

       # Change primary or secondary if required and log it.
       :if (($ntpipa != $ntpcura) || ($ntpipb != $ntpcurb)) do={
           :put "Making and logging NTP pool server change.";
           /system ntp client set primary-ntp="$ntpipa" secondary-ntp="$ntpipb";
           :log info ("NTP servers changed: Primary was: $ntpcura is: $ntpipa Secondary was: $ntpcurb is: $ntpipb");
           }

You may need to change the pool server names to match your locale.