diff --git a/core/modules/system/lib/Drupal/system/Tests/System/CronRunTest.php b/core/modules/system/lib/Drupal/system/Tests/System/CronRunTest.php
index e3c29b735b9786d4adc806a83972152786dd25b3..5def4524b137a4106316fee8e03d6ff6ed46cb84 100644
--- a/core/modules/system/lib/Drupal/system/Tests/System/CronRunTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/System/CronRunTest.php
@@ -98,4 +98,17 @@ function testCronExceptions() {
     $result = state()->get('common_test.cron');
     $this->assertEqual($result, 'success', 'Cron correctly handles exceptions thrown during hook_cron() invocations.');
   }
+
+  /**
+   * Make sure the cron UI reads from the state storage.
+   */
+  function testCronUI() {
+    $admin_user = $this->drupalCreateUser(array('administer site configuration'));
+    $this->drupalLogin($admin_user);
+    $this->drupalGet('admin/config/system/cron');
+    // Don't use REQUEST to calculate the exact time, because that will
+    // fail randomly. Look for the word 'years', because without a timestamp,
+    // the time will start at 1 January 1970.
+    $this->assertNoText('years');
+  }
 }
diff --git a/core/modules/system/system.admin.inc b/core/modules/system/system.admin.inc
index 708854f8622aea2f1a891708c6bea2e35dea6332..d08c4ce0489e1c3e25f0bf0cdec48deadb4a7946 100644
--- a/core/modules/system/system.admin.inc
+++ b/core/modules/system/system.admin.inc
@@ -1508,7 +1508,7 @@ function system_cron_settings($form, &$form_state) {
     '#submit' => array('system_run_cron_submit'),
   );
 
-  $status = '<p>' . t('Last run: %cron-last ago.', array('%cron-last' => format_interval(REQUEST_TIME - variable_get('cron_last')),)) . '</p>';
+  $status = '<p>' . t('Last run: %cron-last ago.', array('%cron-last' => format_interval(REQUEST_TIME - state()->get('system.cron_last')))) . '</p>';
   $form['status'] = array(
     '#markup' => $status,
   );