diff --git a/core/includes/bootstrap.inc b/core/includes/bootstrap.inc
index 9daa71a..5de1059 100644
--- a/core/includes/bootstrap.inc
+++ b/core/includes/bootstrap.inc
@@ -1896,15 +1896,15 @@ function drupal_handle_request($test_only = FALSE) {
  */
 function drupal_get_user_timezone() {
   global $user;
-  $config = config('system.timezone');
+  $config = config('system.date');
 
-  if ($user && $config->get('user.configurable') && $user->id() && $user->timezone) {
+  if ($user && $config->get('timezone.user.configurable') && $user->id() && $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 eefe926..261533c 100644
--- a/core/includes/install.core.inc
+++ b/core/includes/install.core.inc
@@ -2513,11 +2513,8 @@ function install_configure_form_submit($form, &$form_state) {
     ->set('langcode', language_default()->id)
     ->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/system/config/schema/system.schema.yml b/core/modules/system/config/schema/system.schema.yml
index e0d9dce..d7cc7ac 100644
--- a/core/modules/system/config/schema/system.schema.yml
+++ b/core/modules/system/config/schema/system.schema.yml
@@ -90,6 +90,26 @@ system.date:
         default:
           type: string
           label: 'Default country'
+    timezone:
+      type: mapping
+      label: 'Time zone settings'
+      mapping:
+        default:
+      	  type: string
+      	  label: 'Default time zone'
+    	user:
+      	  type: mapping
+      	  label: 'User'
+      	  mapping:
+            configurable:
+              type: boolean
+              label: 'Users may set their own time zone'
+            default:
+              type: integer
+              label: 'Time zone for new users'
+            warn:
+              type: boolean
+              label: 'Remind users at login if their time zone is not set'
     formats:
       type: sequence
       label: 'Date formats'
@@ -255,27 +275,6 @@ system.theme:
         - type: string
           label: 'Theme'
 
-system.timezone:
-  type: mapping
-  label: 'Time zone settings'
-  mapping:
-    default:
-      type: string
-      label: 'Default time zone'
-    user:
-      type: mapping
-      label: 'User'
-      mapping:
-        configurable:
-          type: boolean
-          label: 'Users may set their own time zone'
-        default:
-          type: integer
-          label: 'Time zone for new users'
-        warn:
-          type: boolean
-          label: 'Remind users at login if their time zone is not set'
-
 menu.menu.*:
   type: mapping
   label: 'Menu'
diff --git a/core/modules/system/config/system.date.yml b/core/modules/system/config/system.date.yml
index 55a35c1..be32cc7 100644
--- a/core/modules/system/config/system.date.yml
+++ b/core/modules/system/config/system.date.yml
@@ -1,3 +1,9 @@
-first_day: '0'
 country:
   default: ''
+first_day: '0'
+timezone:
+  default: ''
+  user:
+    configurable: '1'
+    warn: '0'
+    default: '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 4cfb398..5bb5b2b 100644
--- a/core/modules/system/lib/Drupal/system/Form/RegionalForm.php
+++ b/core/modules/system/lib/Drupal/system/Form/RegionalForm.php
@@ -63,7 +63,6 @@ public function getFormID() {
    */
   public function buildForm(array $form, array &$form_state) {
     $countries = $this->countryManager->getList();
-    $system_timezone = $this->configFactory->get('system.timezone');
     $system_date = $this->configFactory->get('system.date');
 
     // Date settings:
@@ -98,11 +97,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.'),
@@ -122,14 +121,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.'),
@@ -148,12 +147,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 b46f751..dce8bc6 100644
--- a/core/modules/system/lib/Drupal/system/Tests/Common/FormatDateTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/Common/FormatDateTest.php
@@ -37,8 +37,9 @@ public static function getInfo() {
 
   function setUp() {
     parent::setUp('language');
-    config('system.timezone')
-      ->set('user.configurable', 1)
+
+    config('system.date')
+      ->set('timezone.user.configurable', 1)
       ->save();
     $formats = $this->container->get('plugin.manager.entity')
       ->getStorageController('date_format')
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 ea2b4db..f0b9a7b 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 b9752b4..cf78533 100644
--- a/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php
+++ b/core/modules/system/lib/Drupal/system/Tests/System/DateTimeTest.php
@@ -43,9 +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)
+    $config = config('system.date')
+      ->set('timezone.default', 'Pacific/Honolulu')
+      ->set('timezone.user.configurable', 0)
       ->save();
     entity_load('date_format', 'medium')
       ->setPattern('Y-m-d H:i:s O')
@@ -64,7 +64,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 d246507..4fd3b2a 100644
--- a/core/modules/system/system.install
+++ b/core/modules/system/system.install
@@ -1802,12 +1802,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 c15f95d..e7cb4ca 100644
--- a/core/modules/system/system.module
+++ b/core/modules/system/system.module
@@ -2357,7 +2357,7 @@ function system_custom_theme() {
  * Implements hook_form_FORM_ID_alter().
  */
 function system_form_user_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);
   }
 }
@@ -2366,8 +2366,8 @@ function system_form_user_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);
   }
 }
@@ -2376,9 +2376,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');
   }
 }
 
@@ -2386,9 +2386,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->id()/edit", array('query' => drupal_get_destination(), 'fragment' => 'edit-timezone')))));
   }
 }
@@ -2408,7 +2408,8 @@ function system_user_timezone(&$form, &$form_state) {
   $form['timezone']['timezone'] = array(
     '#type' => 'select',
     '#title' => t('Time zone'),
-    '#default_value' => isset($account->timezone) ? $account->timezone : ($account->id() == $user->id() ? config('system.timezone')->get('default') : ''),
+    //'#default_value' => isset($account->timezone) ? $account->timezone : ($account->id() == $user->id() ? config('system.date')->get('timezone.default') : ''),
+    '#default_value' => isset($account->timezone) ? $account->timezone : config('system.date')->get('timezone.default'),
     '#options' => system_time_zones($account->id() != $user->id()),
     '#description' => t('Select the desired local time and time zone. Dates and times throughout this site will be displayed using this time zone.'),
   );
diff --git a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
index 32dc5cc..02e51e8 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserRegistrationTest.php
@@ -158,9 +158,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
@@ -184,7 +184,7 @@ function testRegistrationDefaultValues() {
     $this->assertEqual($new_user->signature->value, '', 'Correct signature field.');
     $this->assertTrue(($new_user->created->value > REQUEST_TIME - 20 ), 'Correct creation time.');
     $this->assertEqual($new_user->status->value, $config_user_settings->get('register') == USER_REGISTER_VISITORS ? 1 : 0, 'Correct status field.');
-    $this->assertEqual($new_user->timezone->value, $config_system_timezone->get('default'), 'Correct time zone field.');
+    $this->assertEqual($new_user->timezone->value, $config_system_date->get('timezone.default'), 'Correct time zone field.');
     $this->assertEqual($new_user->langcode->value, language_default()->id, 'Correct language field.');
     $this->assertEqual($new_user->preferred_langcode->value, language_default()->id, 'Correct preferred language field.');
     $this->assertEqual($new_user->init->value, $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 c4ff9ff..ac5aa22 100644
--- a/core/modules/user/lib/Drupal/user/Tests/UserTimeZoneTest.php
+++ b/core/modules/user/lib/Drupal/user/Tests/UserTimeZoneTest.php
@@ -26,13 +26,12 @@ 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')
+    config('system.date')
+      ->set('timezone.user.configurable', 1)
+      ->set('timezone.default', 'America/Los_Angeles')
       ->save();
     entity_load('date_format', 'medium')
-      ->setPattern('Y-m-d H:i T')
-      ->save();
+      ->setPattern('Y-m-d H:i T')      ->save();
 
     // Create a user account and login.
     $web_user = $this->drupalCreateUser();
diff --git a/core/modules/user/user.api.php b/core/modules/user/user.api.php
index edb2d6f..7a7a9d0 100644
--- a/core/modules/user/user.api.php
+++ b/core/modules/user/user.api.php
@@ -284,9 +284,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->id() . "/edit", array('query' => drupal_get_destination(), 'fragment' => 'edit-timezone')))));
   }
 }
diff --git a/core/modules/user/user.module b/core/modules/user/user.module
index cb1ab7e..8b1d011 100644
--- a/core/modules/user/user.module
+++ b/core/modules/user/user.module
@@ -222,7 +222,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.'),
