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 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 () 

  uint16_t identifier = tft.readID();
  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();
    dateString = getDayOfWeek(now.dayOfWeek())+", ";
    dateString = dateString+String(now.date())+"/"+String(now.month());
    dateString= dateString+"/"+ String(now.year()); 
    minutePrevious = minuteNow;
    String hours = String(now.hour());
      hours = hours+":0"+String(now.minute());
      hours = hours+":"+String(now.minute());
    printText (timeChar,WHITE,20,25,2);// hour min,text color, , ,text size
    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);
String getDayOfWeek(int 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.


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?