Aktuelles Datum herausfinden

Dein

Serial.print(__DATE__);Serial.print(" ");Serial.print(__TIME__)

Liefert den Zeitpunkt zu dem Dein Sketch compiliert wurde. Das hat nichts mit der aktuellen Zeit zu tun. Woher soll denn Dein Arduino die Zeit wissen, wenn er ausgeschaltet wurde und nun plötzlich wieder läuft.
In den Code-Zeilen wird durch den Compiler (genauer durch den Präprozessor) das "DATE" und das "TIME" durch einen String mit dem entsprechendne Inhalt ersetzt.
Hier gibt es eine schöne Liste, welche Werte man noch verwenden kann:
http://www.rn-wissen.de/index.php/Avr-gcc/Interna#Builtin_Defines