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..3707bf8 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,20 @@ public function setUp() { } /** + * Test that the AJAX Timezone Callback can deal with various formats. + */ + public function testSystemTimezone() { + $options = array( + 'query' => array( + 'date' => 'Tue+Sep+17+2013+21%3A35%3A31+GMT%2B0100+(BST)#', + ) + ); + // Query the AJAX Timezone Callback with a long-format date. + $response = $this->drupalGet('system/timezone/BST/3600/1', $options); + $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'