diff --git a/core/lib/Drupal/Core/Datetime/DateFormatter.php b/core/lib/Drupal/Core/Datetime/DateFormatter.php
index cd1c5f31bc..819460fa6d 100644
--- a/core/lib/Drupal/Core/Datetime/DateFormatter.php
+++ b/core/lib/Drupal/Core/Datetime/DateFormatter.php
@@ -332,7 +332,8 @@ public function formatDiff($from, $to, $options = []) {
    *   non-custom formats, NULL otherwise.
    */
   protected function dateFormat($type, $langcode) {
-    if (!isset($this->dateFormats[$type][$langcode])) {
+    // We can't use isset() here because the stored value can be NULL.
+    if (!array_key_exists($type, $this->dateFormats) || !array_key_exists($langcode, $this->dateFormats[$type])) {
       $original_language = $this->languageManager->getConfigOverrideLanguage();
       $this->languageManager->setConfigOverrideLanguage(new Language(['id' => $langcode]));
       $this->dateFormats[$type][$langcode] = $this->dateFormatStorage->load($type);
