Some time has gone by, but the problem persists. In my opinion the current situation is quite ugly, e.g.
date_i18n($format, get_date_from_gmt($dateTime->format('Y-m-d H:i:s'), 'U'));
That is three formatting conversions effectively realizing only one. This is not only badly readable but also time-consuming.
My proposal is to add another parameters to date_i18n
which selects the timezone.