diff --git c/core/modules/system/lib/Drupal/system/Tests/Datetime/DrupalDateTimeTest.php w/core/modules/system/lib/Drupal/system/Tests/Datetime/DrupalDateTimeTest.php index 9673c9c..0d8571a 100644 --- c/core/modules/system/lib/Drupal/system/Tests/Datetime/DrupalDateTimeTest.php +++ w/core/modules/system/lib/Drupal/system/Tests/Datetime/DrupalDateTimeTest.php @@ -37,6 +37,15 @@ public function setUp() { } /** + * Test that the AJAX Timezone Callback can deal with various formats. + */ + public function testSystemTimezone() { + // Query the AJAX Timezone Callback with a long-format date. + $response = $this->drupalGet('system/timezone/BST/3600/1?date=Tue+Sep+17+2013+21%3A35%3A31+GMT%2B0100+(BST)#'); + $this->assertEqual($response, '"Europe\/London"', 'Timezone AJAX callback successfully identifies and responds to a long-format date.'); + } + + /** * Test that DrupalDateTime can detect the right timezone to use. * Test with a variety of less commonly used timezone names to * help ensure that the system timezone will be different than the diff --git c/core/modules/system/system.routing.yml w/core/modules/system/system.routing.yml index 508d59c..4867e42 100644 --- c/core/modules/system/system.routing.yml +++ w/core/modules/system/system.routing.yml @@ -344,9 +344,12 @@ system.modules_uninstall_confirm: _permission: 'administer modules' system.timezone: - path: '/system/timezone' + path: '/system/timezone/{abbreviation}/{offset}/{is_daylight_saving_time}' defaults: _controller: '\Drupal\system\Controller\TimezoneController::getTimezone' + abbreviation: '' + offset: -1 + is_daylight_saving_time: NULL requirements: _access: 'TRUE'