diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/TimeZone.php b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/TimeZone.php
new file mode 100644
index 0000000..226b8df
--- /dev/null
+++ b/core/modules/migrate_drupal/src/Plugin/migrate/process/d6/TimeZone.php
@@ -0,0 +1,40 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\migrate_drupal\Plugin\migrate\process\d6\TimeZone.
+ */
+
+namespace Drupal\migrate_drupal\Plugin\migrate\process\d6;
+
+use Drupal\migrate\MigrateExecutableInterface;
+use Drupal\migrate\ProcessPluginBase;
+use Drupal\migrate\Row;
+
+/**
+ * Process the D6 Timezone offset into a D8 compatible timezone name.
+ *
+ * @MigrateProcessPlugin(
+ *   id = "timezone"
+ * )
+ */
+class TimeZone extends ProcessPluginBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  public function transform($value, MigrateExecutableInterface $migrate_executable, Row $row, $destination_property) {
+
+    $offset = $value;
+    // Convert the integer value of the offset (which can be either
+    // negative or positive) to a timezone name.
+    // Note: Daylight saving time is not to be used.
+    $timezone_name = timezone_name_from_abbr('', intval($offset), 0);
+    if (!$timezone_name) {
+      $timezone_name = 'UTC';
+    }
+
+    return $timezone_name;
+  }
+
+}
diff --git a/core/modules/migrate_drupal/src/Tests/Table/d6/Users.php b/core/modules/migrate_drupal/src/Tests/Table/d6/Users.php
index 099c360..8d61b05 100644
--- a/core/modules/migrate_drupal/src/Tests/Table/d6/Users.php
+++ b/core/modules/migrate_drupal/src/Tests/Table/d6/Users.php
@@ -251,12 +251,12 @@ public function load() {
       'access' => '1391259674',
       'login' => '1391152255',
       'status' => '1',
-      'timezone' => '3600',
+      'timezone' => '-28800',
       'language' => 'en',
       'picture' => '',
       'init' => 'bloggs@example.com',
       'data' => 'a:0:{}',
-      'timezone_name' => NULL,
+      'timezone_name' => 'America/Anchorage',
       'pass_plain' => 'joe.bloggs_pass',
       'expected_timezone' => NULL,
       'timezone_id' => '0',
@@ -275,12 +275,12 @@ public function load() {
       'access' => '1391259574',
       'login' => '1391162255',
       'status' => '1',
-      'timezone' => '3600',
+      'timezone' => '0',
       'language' => 'en',
       'picture' => '',
       'init' => 'sal.saraniti@example.com',
       'data' => 'a:0:{}',
-      'timezone_name' => NULL,
+      'timezone_name' => 'UTC',
       'pass_plain' => 'sal.saraniti',
       'expected_timezone' => NULL,
       'timezone_id' => '0',
@@ -299,7 +299,7 @@ public function load() {
       'access' => '1390259574',
       'login' => '1390162255',
       'status' => '1',
-      'timezone' => '3600',
+      'timezone' => NULL,
       'language' => 'en',
       'picture' => '',
       'init' => 'terry.saraniti@example.com',
@@ -312,4 +312,4 @@ public function load() {
   }
 
 }
-#ce6d7264b7ef5ed1ffe854326893e1e0
+#4a42570fa3c819b0b84e9552d689e2e7
diff --git a/core/modules/migrate_drupal/src/Tests/Table/d6/Variable.php b/core/modules/migrate_drupal/src/Tests/Table/d6/Variable.php
index 83555c7..79e6680 100644
--- a/core/modules/migrate_drupal/src/Tests/Table/d6/Variable.php
+++ b/core/modules/migrate_drupal/src/Tests/Table/d6/Variable.php
@@ -173,6 +173,9 @@ public function load() {
       'name' => 'comment_subject_field_story',
       'value' => 's:1:"0";',
     ))->values(array(
+      'name' => 'configurable_timezones',
+      'value' => 's:1:"0";',
+    ))->values(array(
       'name' => 'contact_default_status',
       'value' => 'i:1;',
     ))->values(array(
@@ -380,6 +383,12 @@ public function load() {
       'name' => 'date_api_version',
       'value' => 's:3:"5.2";',
     ))->values(array(
+      'name' => 'date_default_timezone',
+      'value' => 's:4:"3600";',
+    ))->values(array(
+      'name' => 'date_first_day',
+      'value' => 's:1:"4";',
+    ))->values(array(
       'name' => 'date_format_long',
       'value' => 's:24:"\L\O\N\G l, F j, Y - H:i";',
     ))->values(array(
@@ -725,4 +734,4 @@ public function load() {
   }
 
 }
-#32b72a0543c243804368c7bc10b05be5
+#dd0717c35d3b181c80e5ad74ea2ed2f7
diff --git a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
index ac5a836..6efa78b 100644
--- a/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
+++ b/core/modules/migrate_drupal/src/Tests/d6/MigrateDrupal6Test.php
@@ -120,6 +120,7 @@ class MigrateDrupal6Test extends MigrateFullDrupalTestBase {
     'd6_statistics_settings',
     'd6_syslog_settings',
     'd6_system_cron',
+    'd6_system_date',
     'd6_system_file',
     'd6_system_image',
     'd6_system_image_gd',
diff --git a/core/modules/system/migration_templates/d6_system_date.yml b/core/modules/system/migration_templates/d6_system_date.yml
new file mode 100644
index 0000000..fe8669e
--- /dev/null
+++ b/core/modules/system/migration_templates/d6_system_date.yml
@@ -0,0 +1,24 @@
+id: d6_system_date
+label: Drupal 6 system date configuration
+migration_tags:
+  - Drupal 6
+source:
+  plugin: variable
+  variables:
+    - configurable_timezones
+    - date_first_day
+    - date_default_timezone
+process:
+  'timezone/user/configurable':
+    plugin: static_map
+    source: configurable_timezones
+    map:
+      0: FALSE
+      1: TRUE
+  first_day: date_first_day
+  'timezone/default':
+    plugin: timezone
+    source: date_default_timezone
+destination:
+  plugin: config
+  config_name: system.date
diff --git a/core/modules/system/src/Tests/Migrate/d6/MigrateSystemDateTest.php b/core/modules/system/src/Tests/Migrate/d6/MigrateSystemDateTest.php
new file mode 100644
index 0000000..f3fe4e4
--- /dev/null
+++ b/core/modules/system/src/Tests/Migrate/d6/MigrateSystemDateTest.php
@@ -0,0 +1,37 @@
+<?php
+
+/**
+ * @file
+ * Contains \Drupal\system\Tests\Migrate\d6\MigrateSystemDateTest.
+ */
+
+namespace Drupal\system\Tests\Migrate\d6;
+
+use Drupal\migrate_drupal\Tests\d6\MigrateDrupal6TestBase;
+
+/**
+ * Upgrade date time variables to system.*.yml.
+ *
+ * @group system
+ */
+class MigrateSystemDateTest extends MigrateDrupal6TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp() {
+    parent::setUp();
+    $this->loadDumps(['Variable.php']);
+    $this->executeMigration('d6_system_date');
+  }
+
+  /**
+   * Tests migration of user variables to system_date.yml.
+   */
+  public function testSystemDate() {
+    $config = \Drupal::config('system.date');
+    $this->assertIdentical(4, $config->get('first_day'));
+    $this->assertIdentical(FALSE, $config->get('timezone.user.configurable'));
+    $this->assertIdentical("Europe/Paris", $config->get('timezone.default'));
+  }
+}
diff --git a/core/modules/user/src/Plugin/migrate/process/d6/UserUpdate7002.php b/core/modules/user/src/Plugin/migrate/process/d6/UserUpdate7002.php
index 9104b439c..a306d3d 100644
--- a/core/modules/user/src/Plugin/migrate/process/d6/UserUpdate7002.php
+++ b/core/modules/user/src/Plugin/migrate/process/d6/UserUpdate7002.php
@@ -54,6 +54,9 @@ public function transform($value, MigrateExecutableInterface $migrate_executable
       }
     }
 
+    if ($timezone === NULL) {
+      $timezone = \Drupal::config('system.date')->get('timezone.default');
+    }
     return $timezone;
   }
 
diff --git a/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php b/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php
index dcc387c..dcd5929 100644
--- a/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php
+++ b/core/modules/user/src/Tests/Migrate/d6/MigrateUserTest.php
@@ -164,8 +164,8 @@ public function testUser() {
       // user preferred language is not configured on the site. We just want to
       // test if the value was imported correctly.
       $this->assertIdentical($source->language, $user->preferred_langcode->value);
-      $time_zone = $source->expected_timezone ?: $this->config('system.date')->get('timezone.default');
-      $this->assertIdentical($time_zone, $user->getTimeZone());
+      $expected_timezone_name = $source->timezone_name ?: $this->config('system.date')->get('timezone.default');
+      $this->assertIdentical($expected_timezone_name, $user->getTimeZone());
       $this->assertIdentical($source->init, $user->getInitialEmail());
       $this->assertIdentical($roles, $user->getRoles());
 
