Here is yet another way to convert the time stamp string to time_t. There are already several great answers here already, but you may want to compare sketchbinary file sizes. This sketch's is 3884 bytes (IDE Version 1.0.6.2, GCC 4.2.1).
#include <Time.h>
TimeElements myTimeElements;
char timeString[] = "20180810T143000Z";
void setup(){
Serial.begin(9600);
myTimeElements.Year = CalendarYrToTm((timeString[0] - '0') * 1000 + (timeString[1] - '0') * 100 + (timeString[2] - '0') * 10 + (timeString[3] - '0'));
myTimeElements.Month = (timeString[4] - '0') * 10 + (timeString[5] - '0');
myTimeElements.Day = (timeString[6] - '0') * 10 + (timeString[7] - '0');
myTimeElements.Hour = (timeString[9] - '0') * 10 + (timeString[10] - '0');
myTimeElements.Minute = (timeString[11] - '0') * 10 + (timeString[12] - '0');
myTimeElements.Second = (timeString[13] - '0') * 10 + (timeString[14] - '0');
// Assemble time elements into time_t.
time_t t = makeTime(myTimeElements);
// Print out the contents of "t" one "piece" at a time using the "time_t" functions.
Serial.println(year(t));
Serial.println(month(t));
Serial.println(day(t));
Serial.println(hour(t));
Serial.println(minute(t));
Serial.println(second(t));
}
void loop(){}