+++ b/core/modules/system/lib/Drupal/system/Controller/TimezoneController.phpundefined
@@ -0,0 +1,42 @@
+ * Offset from GMT in seconds. Defaults to -1 which means that first found
+ * time zone corresponding to abbr is returned.
+ * Otherwise exact offset is searched and only if not found then the first
+ * time zone with any offset is returned.
...
+ * Daylight saving time indicator. If abbr does not
+ * exist then the time zone is searched solely by
+ * offset and isdst.

I noticed an ajax request at the end of the install process returning a 404 which I this is a regression caused by this conversion. The URL requested was
/system/timezone/BST/3600/1?date=Tue+Sep+17+2013+21%3A35%3A31+GMT%2B0100+(BST)#

I'm still new to the routing system, but it looks like #22 supports /system/timezone, but not this longer format, presumably because you didn't need to explictly specify these parameters in D7 syntax.

Here's a patch that adds the parameters. I did try adding the defaults from the function signature to the YAML file, but that seemed to break it, so I've used null instead which seems to work. Hopefully someone can confirm that this is the correct thing to do!

That error's being generated by timezone_name_from_abbr, because one of it's parameters is incorrect, right? The first parameter isn't an integer, the second is being passed through intval(), so the error must be with the third parameter.

Maybe try running the code locally passing various different values for $is_daylight_saving_time and see what it does/doesn't accept. Is that the correct syntax for passing a query string to drupalGet()? Is a query string even needed (perhaps it should be a separate test)?

The intval around $offset seems designed to surpress exactly this error message, but surely that means we're getting garbage in and therefore returning an invalid timezone. We should be checking the value of $offset and refusing to return any timezone if it isn't numeric.

The issue is the is_daylight_saving_time. Instead of 1, it's being set to 1?date=Tue+Sep+17+2013+21:35:31+GMT+0100+(BST)#. This is odd to me, because it symfony proper, I don't ever remember having this problem. Normally, the var would be set to 1 and you'd get the date from the request object if you wanted to use it.