It may not be the solution, but your loop is running unreasonably fast. Your clock can only deliver useful information at one second intervals but the loop is 1/10th second, thereby making your data 90% rubbish. Perhaps this is just a typo, but make it
delay(1000);
and see if it helps.
Also, confine the SD tests to setup, and keep those conditionals out of the loop, i.e. get the time, and record it - no unnecessary fartarsing about (unless you seriously think somebody is going to come in and steal the card).
No comment on the LED stuff, but it seems redundant.