time/date wrong on tft using DS3231

#include  <Adafruit_GFX.h>
#include <Wire.h>
#include "Sodaq_DS3231.h"
#include  <SPI.h>
#include  <MCUFRIEND_kbv.h>
MCUFRIEND_kbv tft;

#define LCD_CS A3 // Chip Select goes to Analog 3
#define LCD_CD A2 // Command/Data goes to Analog 2
#define LCD_WR A1 // LCD Write goes to Analog 1
#define LCD_RD A0 // LCD Read goes to Analog 0
#define LCD_RESET A4 // Can alternately just connect to Arduino's reset pin

//Color Definitons
#define BLACK     0x0000
#define BLUE      0x001F
#define GREY      0xCE79
#define LIGHTGREY 0xDEDB
#define RED     0xF800
#define GREEN   0x07E0
#define CYAN    0x07FF
#define MAGENTA 0xF81F
#define YELLOW  0xFFE0
#define WHITE   0xFFFF


char timeChar[100];
char dateChar[50];
String dateString;
int minuteNow=0;
int minutePrevious=0;

void setup () 
{

    Serial.begin(9600);//(57600);
    Wire.begin();
    rtc.begin();
    tft.reset();
  uint16_t identifier = tft.readID();
  tft.begin(identifier);
  tft.setRotation (2);  //0=PORTRAIT,1=LANDSCAPE 90 TURN,2=PORTRAIT_rev 180 TURN,3=LANDSCAPE_rev 270 TURN
  tft.fillScreen(LIGHTGREY);//Background color

}

void loop () 
{
  DateTime now = rtc.now(); //get the current date-time
  uint32_t ts = now.getEpoch();
  uint32_t old_ts;
    if (old_ts == 0 || old_ts != ts) {
         old_ts = ts;
  
  minuteNow = now.minute();
  if(minuteNow!=minutePrevious)
  {
    dateString = getDayOfWeek(now.dayOfWeek())+", ";
    dateString = dateString+String(now.date())+"/"+String(now.month());
    dateString= dateString+"/"+ String(now.year()); 
    minutePrevious = minuteNow;
    String hours = String(now.hour());
    if(now.minute()<10)
    {
      hours = hours+":0"+String(now.minute());
    }else
    {
      hours = hours+":"+String(now.minute());
    }
    
    hours.toCharArray(timeChar,100);
    printText (timeChar,WHITE,20,25,2);// hour min,text color, , ,text size
    dateString.toCharArray(dateChar,50);
    printText(dateChar,WHITE,8,5,2);  // dayOfWeek date/month/year,text color, , , text size
    
  }
    }
     }
  
void setRTCTime()
{
  DateTime dt(2018, 6, 11, 10, 40, 00, 1); // Year, Month, Day, Hour, Minutes, Seconds, Day of Week
  rtc.setDateTime(dt); //Adjust date-time as defined 'dt' above 
}void printText(char *text, uint16_t color, int x, int y,int textSize)

  {
  tft.setCursor(x, y);
  tft.setTextColor(color);
  tft.setTextSize(textSize);
  tft.setTextWrap(true);
  tft.print(text);
  }
String getDayOfWeek(int i)
{
  switch(i)
  {
    case 1: return "Mon";break;
    case 2: return "Tues";break;
    case 3: return "Wed";break;
    case 4: return "Thur";break;
    case 5: return "Fri";break;
    case 6: return "Satur";break;
    case 7: return "Sun";break;
    default: return "Mon";break;
  }
}

Date Time dt was set as above and the display showed something different. Not sure why? Any help would be appreciated.

Thanks

Your program does not set the RTC.

There is a function to do so, but it is not called.

 rtc.setDateTime(dt);[code] is this it?
 setRTCTime() [code] I did not call this in the loop?