Your string have "+02:00" in it so it is not an UTC time.
//This is not Qt::UTC but Qt::OffsetFromUTC because of the "+02:00"
QDateTime::fromString("2020-10-14T21:22:24+02:00", Qt::ISODate);
If you want an UTC time
QDateTime utcDateTime = QDateTime::fromString(utcDateTimeString, Qt::ISODate).toUTC();
I'm not familiar with toLocalDateTime() in java, but I think toLocalTime() might be not quite the same with it.
It will convert the datetime to your system's locale time.
Anyway if you want to convert it to Timezone "Europe/Berlin".
QDateTime localDateTime = utcDateTime.toTimeZone(QTimeZone("Europe/Berlin"));
As I tested, you'll get "2020-10-14 21:22:24" for "Europe/Berlin" time, the same as "+02:00", because of the DST.
If you change the month to November
QString dateTimeString = "2020-11-14T21:22:24+02:00";
QDateTime berlinDateTime = QDateTime::fromString(dateTimeString , Qt::ISODate).toTimeZone(QTimeZone("Europe/Berlin"));
Then you'll get "2020-11-14 20:22:24"