problem in storing date and time from RTC DS 1307

i wish to have real-time time and date only once as my output.
and also store the date and time as provided by rtc

//Arduino 1.0+ Only
//Arduino 1.0+ Only

#include "Wire.h"
#define DS1307_ADDRESS 0x68
byte zero = 0x00; //workaround for issue #527
int i;
void setup(){
  Wire.begin();
  Serial.begin(9600);

}

void loop()
printDate();
  delay(1000);
}

byte readByte() 
{
 
  {
  while (!Serial.available()) delay(10);
  byte reading = 0;
  byte incomingByte = Serial.read();
  while (incomingByte != '\n') {
    if (incomingByte >= '0' && incomingByte <= '9')
      reading = reading * 10 + (incomingByte - '0');
    else;
    incomingByte = Serial.read();
  }
  Serial.flush();
  return reading;
}

byte decToBcd(byte val)
{
// Convert normal decimal numbers to binary coded decimal
  return ( (val/10*16) + (val%10) );
}

byte bcdToDec(byte val)  {
// Convert binary coded decimal to normal decimal numbers
  return ( (val/16*10) + (val%16) );
}

void printDate()
{  // Reset the register pointer
  Wire.beginTransmission(DS1307_ADDRESS);
  Wire.write(zero);
  Wire.endTransmission();

  Wire.requestFrom(DS1307_ADDRESS, 7);

  int second = bcdToDec(Wire.read());
  int minute = bcdToDec(Wire.read());
  int hour = bcdToDec(Wire.read() & 0b111111); //24 hour time
  int weekDay = bcdToDec(Wire.read()); //0-6 -> sunday - Saturday
  int monthDay = bcdToDec(Wire.read());
  int month = bcdToDec(Wire.read());
  int year = bcdToDec(Wire.read());

  //print the date EG   3/1/11 23:59:59
  Serial.print(month);
  Serial.print("/");
  Serial.print(monthDay);
  Serial.print("/");
  Serial.print(year);
  Serial.print(" ");
  Serial.print(hour);
  Serial.print(":");
  Serial.print(minute);
  Serial.print(":");
  Serial.println(second);
}

i wish to have real-time time and date only once as my output.

Still haven't determined that setup() runs ONCE and loop() runs over and over, I see.

in another code i used for(i=0;i<1;i++) in the loop.
but the problem persists

duplicate thread http://forum.arduino.cc/index.php?topic=407314.0

in another code i used for(i=0;i<1;i++) in the loop.

How many times is that going to iterate? How many times is the function containing the for loop loop going to iterate?

If you MUST call the function ONCE from loop:

bool beenThereDoneThat = false;

void loop()
{
   if(!beenThereDoneThat)
   {
      goThereDoThat();
      beenThereDoneThat = true;
   }
}