in reply to Date Timezone

the program does not give an error but exits (I say this because no more output is done...).
If this is in a CGI script, error messages would be going to the error log on the server.
you should specifically look there for a message looking like Too many arguments for main::TimeZone at…, because stevieb's hint here looks spot on:
Also, you don't need (and unless you know when you should) shouldn't be using prototypes in your sub definition (ie. remove the ()).