Get rid of all the String variables. They cause memory problems in Arduino, and mixing those with C-strings (character arrays) is asking for trouble.
For example, this very badly coded section:
sprintf(sz, "%02d/%02d/%02d %02d:%02d:%02d ",
day, month, year, hour, minute, second);
String strTemp1 = "UTC: ";
String strTemp2 = strTemp1 + sz;
...
tft.print(strTemp2);
Can be replaced by two lines:
sprintf(sz, "UTC: %02d/%02d/%02d %02d:%02d:%02d ",
day, month, year, hour, minute, second);
tft.print(sz);