With the new DrupalDateTime Class it is easier than ever to format a date with php.
One important thing to do before messing with the DrupalDateTime formats and functionality is to set your correct Timezone in admin/config/regional/settings. For my case i switched to Athens - Timezone. Here are some examples based on a timestamp value ($row->created = 1634136039).
use Drupal\Core\Datetime\DrupalDateTime; //Convert Timestamp to Drupal DateTime $drupalDateTime = DrupalDateTime::createFromTimestamp($row->created); print $drupalDateTime->format('r'); //Will return "Wed, 13 Oct 2021 17:40:39 +0300" print $drupalDateTime->__toString() //Will return 2021-10-13 17:40:39 Europe/Athens print $drupalDateTime->format('Y-m-d H:i:s') //Will return "2021-10-13 17:40:39" print $drupalDateTime->format('Y-m-d H:i:s P') //Will return "2021-10-13 17:40:39 +03:00"
Now what is important to remember here is that by using the "P" in the format you get the timezone hours difference convertion and this is the only worry free way to always be updated about calculating and displaying the correct date time especially if you are using this in an API call like i do.
Another important thing to notice here is that you should import your language *.po files from here https://localize.drupal.org/translate/languages/ otherwise you won't see any translated strings because they simply do not exist within the database yet!