diff --git a/core/lib/Drupal/Core/Datetime/DateFormatter.php b/core/lib/Drupal/Core/Datetime/DateFormatter.php
index 0b4f817..60a1adc 100644
--- a/core/lib/Drupal/Core/Datetime/DateFormatter.php
+++ b/core/lib/Drupal/Core/Datetime/DateFormatter.php
@@ -2,7 +2,7 @@
 
 /**
  * @file
- * Contains \Drupal\Core\Datetime\Date.
+ * Contains \Drupal\Core\Datetime\DateFormatter.
  */
 
 namespace Drupal\Core\Datetime;
@@ -144,7 +144,7 @@ public function format($timestamp, $type = 'medium', $format = '', $timezone = N
     $date = DrupalDateTime::createFromTimestamp($timestamp, $this->timezones[$timezone], $create_settings);
 
     // If we have a non-custom date format use the provided date format pattern.
-    if ($date_format = $this->dateFormat($type, $langcode)) {
+    if ($type !== 'custom' && $date_format = $this->dateFormat($type, $langcode)) {
       $format = $date_format->getPattern();
     }
 
@@ -195,22 +195,28 @@ public function formatInterval($interval, $granularity = 2, $langcode = NULL) {
   /**
    * Loads the given format pattern for the given langcode.
    *
-   * @param string $format
-   *   The machine name of the date format.
+   * @param string $type
+   *   (optional) The format to use, one of:
+   *   - One of the built-in formats: 'short', 'medium',
+   *     'long', 'html_datetime', 'html_date', 'html_time',
+   *     'html_yearless_date', 'html_week', 'html_month', 'html_year'.
+   *   - The name of a date type defined by a date format config entity.
+   *   - The machine name of an administrator-defined date format.
+   *   - 'custom' for custom format.
    * @param string $langcode
    *   The langcode of the language to use.
    *
    * @return string
    *   The pattern for the date format in the given language.
    */
-  protected function dateFormat($format, $langcode) {
-    if (!isset($this->dateFormats[$format][$langcode])) {
+  protected function dateFormat($type, $langcode) {
+    if (!isset($this->dateFormats[$type][$langcode])) {
       $original_language = $this->languageManager->getConfigOverrideLanguage();
       $this->languageManager->setConfigOverrideLanguage(new Language(array('id' => $langcode)));
-      $this->dateFormats[$format][$langcode] = $this->dateFormatStorage->load($format);
+      $this->dateFormats[$type][$langcode] = $this->dateFormatStorage->load($type);
       $this->languageManager->setConfigOverrideLanguage($original_language);
     }
-    return $this->dateFormats[$format][$langcode];
+    return $this->dateFormats[$type][$langcode];
   }
 
   /**
