Updating deprecated format_date() calls in Drupal 8
This covers only the most common use cases.
A little more information
If you are using other arguments
The order of arguments is consistent in the new service.
format_date(time(), 'custom', 'Y M D', 'America/Los_Angeles', 'en-us');
\Drupal::service('date.formatter')->format(time(), 'custom', 'Y M D', 'America/Los_Angeles', 'en-us');
We have a set of examples as part of the Drupal Rector
rector_examples module. See https://github.com/palantirnet/drupal-rector/tree/master/rector_examples.
Automating updates with Drupal Rector
Drupal Rector is an open source tool built using Rector which can help automate this deprecation as well as other common deprecations.
For more information, see https://github.com/palantirnet/drupal-rector.
What is covered by the rector
Drupal Rector currently replaces static calls to
format_date() as shown above.
Drupal Rector does not inject the
date.formatter service into classes.
format_date() used a global method call rather than a service, making unit testing more difficult.
The Drupal change record for this deprecation is available at https://www.drupal.org/node/1876852.
Credits and thank yous
Thank you to Dan Montgomery for leading Drupal Rector development to support this deprecation.
Thank you to Palantir.net for sponsoring this development.