diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 7dc75f5..ac4220f 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -2010,15 +2010,15 @@ function drupal_handle_request($test_only = FALSE) {
  */
 function drupal_get_user_timezone() {
   global $user;
-  $config = config('system.timezone');
+  $config = config('system.date');
 
-  if ($config->get('user.configurable') && $user->uid && $user->timezone) {
+  if ($config->get('timezone.user.configurable') && $user->uid && $user->timezone) {
     return $user->timezone;
   }
   else {
     // Ignore PHP strict notice if time zone has not yet been set in the php.ini
     // configuration.
-    $config_data_default_timezone = $config->get('default');
+    $config_data_default_timezone = $config->get('timezone.default');
     return !empty($config_data_default_timezone) ? $config_data_default_timezone : @date_default_timezone_get();
   }
 }
diff --git a/core/includes/install.core.inc b/core/includes/install.core.inc
index 32c0b49..32d745e 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -2427,11 +2427,8 @@ function install_configure_form_submit($form, &$form_state) {
     ->set('langcode', language_default()->langcode)
     ->save();
 
-  config('system.timezone')
-    ->set('default', $form_state['values']['date_default_timezone'])
-    ->save();
-
   config('system.date')
+    ->set('timezone.default', $form_state['values']['date_default_timezone'])
     ->set('country.default', $form_state['values']['site_default_country'])
     ->save();
 
diff --git a/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
index 7389580..5efd894 100644
--- a/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
+++ b/core/modules/openid/lib/Drupal/openid/Tests/OpenIDRegistrationTest.php
@@ -37,9 +37,9 @@ public static function getInfo() {
   function testRegisterUserWithEmailVerification() {
     config('user.settings')->set('verify_mail', TRUE)->save();
 
-    config('system.timezone')
-      ->set('user.configurable', 1)
-      ->set('default', 'Europe/Brussels')
+    config('system.date')
+      ->set('timezone.user.configurable', 1)
+      ->set('timezone.default', 'Europe/Brussels')
       ->save();
 
     // Tell openid_test.module to respond with these SREG fields.
@@ -96,9 +96,9 @@ function testRegisterUserWithEmailVerification() {
   function testRegisterUserWithoutEmailVerification() {
     config('user.settings')->set('verify_mail', FALSE)->save();
 
-    config('system.timezone')
-      ->set('user.configurable', 1)
-      ->set('default', 'Europe/Brussels')
+    config('system.date')
+      ->set('timezone.user.configurable', 1)
+      ->set('timezone.default', 'Europe/Brussels')
       ->save();
 
     // Tell openid_test.module to respond with these SREG fields.
@@ -138,9 +138,9 @@ function testRegisterUserWithoutEmailVerification() {
    * information (a username that is already taken, and no e-mail address).
    */
   function testRegisterUserWithInvalidSreg() {
-    config('system.timezone')
-      ->set('user.configurable', 1)
-      ->set('default', 'Europe/Brussels')
+    config('system.date')
+      ->set('timezone.user.configurable', 1)
+      ->set('timezone.default', 'Europe/Brussels')
       ->save();
 
     // Tell openid_test.module to respond with these SREG fields.
@@ -228,8 +228,8 @@ function testRegisterUserWithoutSreg() {
    */
   function testRegisterUserWithAXButNoSREG() {
     config('user.settings')->set('verify_mail', FALSE)->save();
-    config('system.timezone')
-      ->set('default', 'Europe/Brussels')
+    config('system.date')
+      ->set('timezone.default', 'Europe/Brussels')
       ->save();
 
     // Tell openid_test.module to respond with these AX fields.
diff --git a/core/modules/system/config/system.date.yml b/core/modules/system/config/system.date.yml
index 55c6e75..3fa329c 100644
--- a/core/modules/system/config/system.date.yml
+++ b/core/modules/system/config/system.date.yml
@@ -62,3 +62,9 @@ formats:
       php: 'Y'
       intl: 'Y'
     locked: 1
+timezone:
+  default: ''
+  user:
+    configurable: '1'
+    default: '0'
+    warn: '0'
diff --git a/core/modules/system/config/system.timezone.yml b/core/modules/system/config/system.timezone.yml
deleted file mode 100644
index b0d33a1..0000000
--- a/core/modules/system/config/system.timezone.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-default: ''
-user:
-  configurable: '1'
-  default: '0'
-  warn: '0'
diff --git a/core/modules/system/lib/Drupal/system/Form/RegionalForm.php b/core/modules/system/lib/Drupal/system/Form/RegionalForm.php
index 323a3bb..6a47381 100644
--- a/core/modules/system/lib/Drupal/system/Form/RegionalForm.php
+++ b/core/modules/system/lib/Drupal/system/Form/RegionalForm.php
@@ -26,7 +26,6 @@ public function getFormID() {
    */
   public function buildForm(array $form, array &$form_state) {
     $countries = country_get_list();
-    $system_timezone = $this->configFactory->get('system.timezone');
     $system_date = $this->configFactory->get('system.date');
 
     // Date settings:
@@ -61,11 +60,11 @@ public function buildForm(array $form, array &$form_state) {
     $form['timezone']['date_default_timezone'] = array(
       '#type' => 'select',
       '#title' => t('Default time zone'),
-      '#default_value' => $system_timezone->get('default') ?: date_default_timezone_get(),
+      '#default_value' => $system_date->get('timezone.default') ?: date_default_timezone_get(),
       '#options' => $zones,
     );
 
-    $configurable_timezones = $system_timezone->get('user.configurable');
+    $configurable_timezones = $system_date->get('timezone.user.configurable');
     $form['timezone']['configurable_timezones'] = array(
       '#type' => 'checkbox',
       '#title' => t('Users may set their own time zone.'),
@@ -85,14 +84,14 @@ public function buildForm(array $form, array &$form_state) {
     $form['timezone']['configurable_timezones_wrapper']['empty_timezone_message'] = array(
       '#type' => 'checkbox',
       '#title' => t('Remind users at login if their time zone is not set.'),
-      '#default_value' => $system_timezone->get('user.warn'),
+      '#default_value' => $system_date->get('timezone.user.warn'),
       '#description' => t('Only applied if users may set their own time zone.')
     );
 
     $form['timezone']['configurable_timezones_wrapper']['user_default_timezone'] = array(
       '#type' => 'radios',
       '#title' => t('Time zone for new users'),
-      '#default_value' => $system_timezone->get('user.default'),
+      '#default_value' => $system_date->get('timezone.user.default'),
       '#options' => array(
         DRUPAL_USER_TIMEZONE_DEFAULT => t('Default time zone.'),
         DRUPAL_USER_TIMEZONE_EMPTY   => t('Empty time zone.'),
@@ -111,12 +110,10 @@ public function submitForm(array &$form, array &$form_state) {
     $this->configFactory->get('system.date')
       ->set('country.default', $form_state['values']['site_default_country'])
       ->set('first_day', $form_state['values']['date_first_day'])
-      ->save();
-    $this->configFactory->get('system.timezone')
-      ->set('default', $form_state['values']['date_default_timezone'])
-      ->set('user.configurable', $form_state['values']['configurable_timezones'])
-      ->set('user.warn', $form_state['values']['empty_timezone_message'])
-      ->set('user.default', $form_state['values']['user_default_timezone'])
+      ->set('timezone.default', $form_state['values']['date_default_timezone'])
+      ->set('timezone.user.configurable', $form_state['values']['configurable_timezones'])
+      ->set('timezone.user.warn', $form_state['values']['empty_timezone_message'])
+      ->set('timezone.user.default', $form_state['values']['user_default_timezone'])
       ->save();
 
     parent::submitForm($form, $form_state);
diff --git a/core/modules/system/lib/Drupal/system/Tests/Common/FormatDateTest.php b/core/modules/system/lib/Drupal/system/Tests/Common/FormatDateTest.php
index 1f2575c..87977d1 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Common/FormatDateTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Common/FormatDateTest.php
@@ -36,10 +36,8 @@ public static function getInfo() {
 
   function setUp() {
     parent::setUp('language');
-    config('system.timezone')
-      ->set('user.configurable', 1)
-      ->save();
     config('system.date')
+      ->set('timezone.user.configurable', 1)
       ->set('formats.long.pattern.php', 'l, j. F Y - G:i')
       ->set('formats.medium.pattern.php', 'j. F Y - G:i')
       ->set('formats.short.pattern.php', 'Y M j - g:ia')
diff --git a/core/modules/system/lib/Drupal/system/Tests/Datetime/DrupalDateTimeTest.php b/core/modules/system/lib/Drupal/system/Tests/Datetime/DrupalDateTimeTest.php
index 698ea1a..7d249da 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Datetime/DrupalDateTimeTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Datetime/DrupalDateTimeTest.php
@@ -48,9 +48,9 @@ public function testDateTimezone() {
     $date_string = '2007-01-31 21:00:00';
 
     // Make sure no site timezone has been set.
-    config('system.timezone')
-      ->set('user.configurable', 0)
-      ->set('default', NULL)
+    config('system.date')
+      ->set('timezone.user.configurable', 0)
+      ->set('timezone.default', NULL)
       ->save();
 
     // Detect the system timezone.
@@ -68,7 +68,7 @@ public function testDateTimezone() {
     $this->assertTrue($timezone == 'America/Yellowknife', 'DrupalDateTime uses the specified timezone if provided.');
 
     // Set a site timezone.
-    config('system.timezone')->set('default', 'Europe/Warsaw')->save();
+    config('system.date')->set('timezone.default', 'Europe/Warsaw')->save();
 
     // Create a date object with an unspecified timezone, which should
     // end up using the site timezone.
@@ -77,7 +77,7 @@ public function testDateTimezone() {
     $this->assertTrue($timezone == 'Europe/Warsaw', 'DrupalDateTime uses the site timezone if provided.');
 
     // Create user.
-    config('system.timezone')->set('user.configurable', 1)->save();
+    config('system.date')->set('timezone.user.configurable', 1)->save();
     $test_user = $this->drupalCreateUser(array());
     $this->drupalLogin($test_user);
 
diff --git a/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php b/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php
index c867581..e9c9b49 100644
--- a/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php
@@ -43,11 +43,9 @@ function setUp() {
    */
   function testTimeZoneHandling() {
     // Setup date/time settings for Honolulu time.
-    $config = config('system.timezone')
-      ->set('default', 'Pacific/Honolulu')
-      ->set('user.configurable', 0)
-      ->save();
-    config('system.date')
+    $config = config('system.date')
+      ->set('timezone.default', 'Pacific/Honolulu')
+      ->set('timezone.user.configurable', 0)
       ->set('formats.medium.pattern.php', 'Y-m-d H:i:s O')
       ->save();
 
@@ -64,7 +62,7 @@ function testTimeZoneHandling() {
     $this->assertText('2007-07-31 21:00:00 -1000', 'Date should be identical, with GMT offset of -10 hours.');
 
     // Set time zone to Los Angeles time.
-    $config->set('default', 'America/Los_Angeles')->save();
+    $config->set('timezone.default', 'America/Los_Angeles')->save();
 
     // Confirm date format and time zone.
     $this->drupalGet("node/$node1->nid");
diff --git a/core/modules/system/system.install b/core/modules/system/system.install
index b7b4209..e43b1f5 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -1807,12 +1807,9 @@ function system_update_8038() {
     'site_default_country' => 'country.default',
     'date_first_day' => 'first_day',
     'date_default_timezone' => 'timezone.default',
-  ));
-  update_variables_to_config('system.timezone', array(
-    'date_default_timezone' => 'default',
-    'configurable_timezones' => 'user.configurable',
-    'empty_timezone_message' => 'user.warn',
-    'user_default_timezone' => 'user.default',
+    'configurable_timezones' => 'timezone.user.configurable',
+    'empty_timezone_message' => 'timezone.user.warn',
+    'user_default_timezone' => 'timezone.user.default',
   ));
 }
 
diff --git a/core/modules/system/system.module b/core/modules/system/system.module
index 0d472e5..441823e 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -2601,7 +2601,7 @@ function system_custom_theme() {
  * Implements hook_form_FORM_ID_alter().
  */
 function system_form_user_profile_form_alter(&$form, &$form_state) {
-  if (config('system.timezone')->get('user.configurable')) {
+  if (config('system.date')->get('timezone.user.configurable')) {
     system_user_timezone($form, $form_state);
   }
 }
@@ -2610,8 +2610,8 @@ function system_form_user_profile_form_alter(&$form, &$form_state) {
  * Implements hook_form_FORM_ID_alter().
  */
 function system_form_user_register_form_alter(&$form, &$form_state) {
-  $config = config('system.timezone');
-  if ($config->get('user.configurable') && $config->get('user.default') == DRUPAL_USER_TIMEZONE_SELECT) {
+  $config = config('system.date');
+  if ($config->get('timezone.user.configurable') && $config->get('timezone.user.default') == DRUPAL_USER_TIMEZONE_SELECT) {
     system_user_timezone($form, $form_state);
   }
 }
@@ -2620,9 +2620,9 @@ function system_form_user_register_form_alter(&$form, &$form_state) {
  * Implements hook_user_presave().
  */
 function system_user_presave($account) {
-  $config = config('system.timezone');
-  if ($config->get('user.configurable') && empty($account->timezone) && !$config->get('user.default')) {
-    $account->timezone = $config->get('default');
+  $config = config('system.date');
+  if ($config->get('timezone.user.configurable') && empty($account->timezone) && !$config->get('timezone.user.default')) {
+    $account->timezone = $config->get('timezone.default');
   }
 }
 
@@ -2630,9 +2630,9 @@ function system_user_presave($account) {
  * Implements hook_user_login().
  */
 function system_user_login($account) {
-  $config = config('system.timezone');
+  $config = config('system.date');
   // If the user has a NULL time zone, notify them to set a time zone.
-  if (!$account->timezone && $config->get('user.configurable') && $config->get('user.warn')) {
+  if (!$account->timezone && $config->get('timezone.user.configurable') && $config->get('timezone.user.warn')) {
     drupal_set_message(t('Configure your <a href="@user-edit">account time zone setting</a>.', array('@user-edit' => url("user/$account->uid/edit", array('query' => drupal_get_destination(), 'fragment' => 'edit-timezone')))));
   }
 }
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
index db649b0..4e91263 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
@@ -157,9 +157,9 @@ function testRegistrationDefaultValues() {
       ->save();
 
     // Set the default timezone to Brussels.
-    $config_system_timezone = config('system.timezone')
-      ->set('user.configurable', 1)
-      ->set('default', 'Europe/Brussels')
+    $config_system_date = config('system.date')
+      ->set('timezone.user.configurable', 1)
+      ->set('timezone.default', 'Europe/Brussels')
       ->save();
 
     // Check that the account information options are not displayed
@@ -183,7 +183,7 @@ function testRegistrationDefaultValues() {
     $this->assertEqual($new_user->signature, '', 'Correct signature field.');
     $this->assertTrue(($new_user->created > REQUEST_TIME - 20 ), 'Correct creation time.');
     $this->assertEqual($new_user->status, $config_user_settings->get('register') == USER_REGISTER_VISITORS ? 1 : 0, 'Correct status field.');
-    $this->assertEqual($new_user->timezone, $config_system_timezone->get('default'), 'Correct time zone field.');
+    $this->assertEqual($new_user->timezone, $config_system_date->get('timezone.default'), 'Correct time zone field.');
     $this->assertEqual($new_user->langcode, language_default()->langcode, 'Correct language field.');
     $this->assertEqual($new_user->preferred_langcode, language_default()->langcode, 'Correct preferred language field.');
     $this->assertEqual($new_user->init, $mail, 'Correct init field.');
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserTimeZoneTest.php b/core/modules/user/lib/Drupal/user/Tests/UserTimeZoneTest.php
index 8b77915..9360024 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserTimeZoneTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserTimeZoneTest.php
@@ -26,11 +26,9 @@ public static function getInfo() {
    */
   function testUserTimeZone() {
     // Setup date/time settings for Los Angeles time.
-    config('system.timezone')
-      ->set('user.configurable', 1)
-      ->set('default', 'America/Los_Angeles')
-      ->save();
     config('system.date')
+      ->set('timezone.user.configurable', 1)
+      ->set('timezone.default', 'America/Los_Angeles')
       ->set('formats.medium.pattern.php', 'Y-m-d H:i T')
       ->save();
 
diff --git a/core/modules/user/user.api.php b/core/modules/user/user.api.php
index 652c5b5..f9385ba 100644
--- a/core/modules/user/user.api.php
+++ b/core/modules/user/user.api.php
@@ -318,9 +318,9 @@ function hook_user_update($account) {
  *   The user object on which the operation was just performed.
  */
 function hook_user_login($account) {
-  $config = config('system.timezone');
+  $config = config('system.date');
   // If the user has a NULL time zone, notify them to set a time zone.
-  if (!$account->timezone && $config->get('user.configurable') && $config->get('user.warn')) {
+  if (!$account->timezone && $config->get('timezone.user.configurable') && $config->get('timezone.user.warn')) {
     drupal_set_message(t('Configure your <a href="@user-edit">account time zone setting</a>.', array('@user-edit' => url("user/$account->uid/edit", array('query' => drupal_get_destination(), 'fragment' => 'edit-timezone')))));
   }
 }
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index 42a79db..447f00a 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -231,7 +231,7 @@ function user_field_extra_fields() {
     'description' => t('User module form element.'),
     'weight' => 0,
   );
-  if (config('system.timezone')->get('user.configurable')) {
+  if (config('system.date')->get('timezone.user.configurable')) {
     $fields['user']['user']['form']['timezone'] = array(
       'label' => t('Timezone'),
       'description' => t('System module form element.'),
