RTC not working as expected

I want to be able to save the date and time for logging data, so I am learning how to use the RTC. I run this code:

// Date and time functions using just software, based on millis() & timer

#include <Arduino.h>
#include <Wire.h>         // this #include still required because the RTClib depends on it
#include "RTClib.h"

#if defined(ARDUINO_ARCH_SAMD)
// for Zero, output on USB Serial console, remove line below if using programming port to program the Zero!
   #define Serial SerialUSB
#endif

RTC_Millis rtc;

void setup () {
    Serial.begin(9600);
    // following line sets the RTC to the date & time this sketch was compiled
    rtc.begin(DateTime(F(__DATE__), F(__TIME__)));
    // This line sets the RTC with an explicit date & time, for example to set
    // January 21, 2014 at 3am you would call:
    // rtc.adjust(DateTime(2014, 1, 21, 3, 0, 0));
}

void loop () {
    DateTime now = rtc.now();
    
    Serial.print(now.year(), DEC);
    Serial.print('/');
    Serial.print(now.month(), DEC);
    Serial.print('/');
    Serial.print(now.day(), DEC);
    Serial.print(' ');
    Serial.print(now.hour(), DEC);
    Serial.print(':');
    Serial.print(now.minute(), DEC);
    Serial.print(':');
    Serial.print(now.second(), DEC);
    Serial.println();
    
    //Serial.print(" seconds since 1970: ");
    //Serial.println(now.unixtime());
    
    // calculate a date which is 7 days and 30 seconds into the future
    //DateTime future (now.unixtime() + 7 * 86400L + 30);
    
    //Serial.print(" now + 7d + 30s: ");
    //Serial.print(future.year(), DEC);
    //Serial.print('/');
    //Serial.print(future.month(), DEC);
    //Serial.print('/');
    //Serial.print(future.day(), DEC);
    //Serial.print(' ');
    //Serial.print(future.hour(), DEC);
    //erial.print(':');
    //Serial.print(future.minute(), DEC);
    //Serial.print(':');
    //Serial.print(future.second(), DEC);
    //Serial.println();
    
    Serial.println();
    delay(3000);
}

which is directly from the tutorial, and it works fine. It prints the current date and time. Then if I comment out the "rtc.begin(DateTime..." command it gives an erroneous date (2106?). I thought that once you put in the correct time, it is stored for future use. What is wrong? Thanks.

After you commented the line, did you download the sketch again?

Is there a good battery in the RTC?

yes, and yes, and... I think I fixed it. It could be one of a couple things I changed. 1) The RTC examples disappeared from my list, so I reinstalled the libraries, 2) Started over with an 8523 example, which is slightly different from the example I had. 3) copied the library to the Arduino libraries directory. thanks!