If you are referring to me, I have posted two programmes, one to set the time and the other to read it. Neither will do both. The time set will display the time but that is only for confirmation.
1. Open windows clock
2. Enter the start time in the setup section
3. Load the programme about thirty seconds before that time
4. See that time on the display i.e. about fifteen seconds fast
5. Press reset button a few seconds early
6. Release the button at the appropriate time
7. Confirm clock is in sync with windows clock.
I've come to the conclusion that it takes a few minutes for the time to update to the correct time.
Definitely not. It happens more or less instantly on release of the reset button. If anything else is happening it is either mechanical, or user error.
I'm a bit confused though because I thought that it only got the time from the RTC in setup, so why would it update after its been looping for a while?
It sends the time to
the RTC in setup.
I just have the SDA and SCL plugged into the A4 and A5 analog pins respectively.
That should be OK, as proven in that you actually see something. No pullups necessary.
However if this is normal how can I check when the time is updated to the correct time?
It isn't normal.
Also one more question, what happens if the RTC updates the time by say, a second, when the arduino is running a delay? Even if its only a 30 millisecond delay, if the RTC is updating the seconds during this time wont that mess up my logging?
You are missing the point of an RTC. The RTC runs independently of the Arduino, is not interested or affected by what the Arduino is doing, and this applies even if the Arduino is not running. It's job is to supply the Arduino with a time signal on demand.
The only way you can stuff things up with a delay, is by inserting a delay between calling for the time and actually displaying it. I guess this needs to be taken into account in a large programme but, even then, any error will be consistent and therefore probably irrelevant.