diff --git a/core/modules/system/lib/Drupal/system/Controller/LanguageController.php b/core/modules/system/lib/Drupal/system/Controller/LanguageController.php
new file mode 100644
index 0000000..5dc1843
--- /dev/null
+++ b/core/modules/system/lib/Drupal/system/Controller/LanguageController.php
@@ -0,0 +1,51 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\system\Controller\LanguageDateFormatController.
+ */
+
+namespace Drupal\system\Controller;
+
+/**
+ * Controller for Language Date Format handling.
+ */
+class LanguageDateFormatController {
+
+  /**
+   * Displays edit date format links for each language.
+   *
+   * @return array
+   *   Render array of overview page.
+   */
+  public function overviewPage() {
+
+    $header = array(t('Language'), t('Operations'));
+
+    $languages = language_list();
+    foreach ($languages as $langcode => $language) {
+      $row = array();
+      $row[] = $language->name;
+      $links = array();
+      $links['edit'] = array(
+        'title' => t('Edit'),
+        'href' => 'admin/config/regional/date-time/' . $langcode . '/edit',
+      );
+      $links['reset'] = array(
+        'title' => t('Reset'),
+        'href' => 'admin/config/regional/date-time/' . $langcode . '/reset',
+      );
+      $row[] = array(
+        'data' => array(
+          '#type' => 'operations',
+          '#links' => $links,
+        ),
+      );
+      $rows[] = $row;
+    }
+
+    return array('#theme' => 'table', '#header' => $header, '#rows' => $rows);
+
+  }
+
+}
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index aa36ba7..2a707b7 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -826,39 +826,6 @@ function theme_system_themes_page($variables) {
 }
 
 /**
- * Page callback: Displays edit date format links for each language.
- *
- * @see locale_menu()
- */
-function system_date_format_language_overview_page() {
-  $header = array(t('Language'), t('Operations'));
-
-  $languages = language_list();
-  foreach ($languages as $langcode => $language) {
-    $row = array();
-    $row[] = $language->name;
-    $links = array();
-    $links['edit'] = array(
-      'title' => t('Edit'),
-      'href' => "admin/config/regional/date-time/locale/$langcode/edit",
-    );
-    $links['reset'] = array(
-      'title' => t('Reset'),
-      'href' => "admin/config/regional/date-time/locale/$langcode/reset",
-    );
-    $row[] = array(
-      'data' => array(
-        '#type' => 'operations',
-        '#links' => $links,
-      ),
-    );
-    $rows[] = $row;
-  }
-
-  return theme('table', array('header' => $header, 'rows' => $rows));
-}
-
-/**
  * Form constructor for the date localization configuration form.
  *
  * @param $langcode
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index e771d4e..437f094 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -952,11 +952,9 @@ function system_menu() {
     $items['admin/config/regional/date-time/locale'] = array(
       'title' => 'Localize',
       'description' => 'Configure date formats for each locale',
-      'page callback' => 'system_date_format_language_overview_page',
-      'access arguments' => array('administer site configuration'),
       'type' => MENU_LOCAL_TASK,
       'weight' => -8,
-      'file' => 'system.admin.inc',
+      'route_name' => 'date_format_language_overview',
     );
     $items['admin/config/regional/date-time/locale/%/edit'] = array(
       'title' => 'Localize date formats',
diff --git a/core/modules/system/system.routing.yml b/core/modules/system/system.routing.yml
index 0785e5c..8c39674 100644
--- a/core/modules/system/system.routing.yml
+++ b/core/modules/system/system.routing.yml
@@ -102,6 +102,13 @@ date_format_edit:
   requirements:
     _entity_access: 'date_format.update'
 
+date_format_language_overview:
+  pattern: '/admin/config/regional/date-time/locale'
+  defaults:
+    _controller: '\Drupal\system\Controller\LanguageDateFormatController::overviewPage'
+  requirements:
+    _permission: 'administer site configuration'
+
 date_format_delete:
   pattern: 'admin/config/regional/date-time/formats/manage/{date_format}/delete'
   defaults:
