Passing Date Parameters

The date processing is now all new and shiny:

Dates are now always passed and parsed as full timestamps.
Each date-parameter has a attribute "timezone" which either is "server", "client", "utc" or a specific timezone (one of those found in timezones.properties in the JDK).

If the parameter is a server-date, then the pattern "yyyy-MM-dd'T'HH:mm:ss.SSS" is used to send values between server and client. The date is interpreted on the server using the server's timezone. The client presents the date/time locally in the local timezone.

If the parameter is client-date, then the server sends a non-timezoned date and the client sends a date with its local timezone attached.

For all examples, assume the client is in Orlando (GMT-5) and the server is in Berlin (GMT+1).

For backward compatibility reasons:
If on parameter input a full date is specified, we parse the full date including the
timezone information given there. The date behaves as if it is a "client" date.

Mode Server: without timezone hint ...
SS: 2010-01-01T12:00:00.000-0500
CR: 2010-01-01T12:00:00.000 - Server provided timezone info is ignored; all date displays show server time
CS: 2010-01-01T12:00:00.000 - client does not set timezone information in response
SR: 2010-01-01T12:00:00.000-0500 - server parses date string with own timezone information

Mode Server: with timezone hint ...
SS: 2010-01-01T12:00:00.000-0500 - tz-hint = -0500
CR: 2010-01-01T12:00:00.000 - Server provided timezone info is ignored; all date displays show server time
CS: 2010-01-01T12:00:00.000-0500 - client appends server-provided timezone to date-string. (.SSS'tz-hint')
SR: 2010-01-01T12:00:00.000-0500 - server parses date string with own timezone information

Mode Client:
SS: 2010-01-01T12:00:00.000-0500
CR: 2010-01-01T18:00:00.000+0100 - time is parsed according to the local time and displayed as 18:00 to the user,
CS: 2010-01-01T18:00:00.000+0100 - time is sent with local timezone (.SSSZ pattern)
SR: 2010-01-01T18:00:00.000+0100 - server uses client provided timezone on string to parse date

Mode Fixed Timezone: (Example: GMT+2/ server sends fixed time and matching timezone hint)
SS: 2010-01-01T19:00:00.000+0200 - server sends time in fixed timezone
CR: 2010-01-01T19:00:00.000 - server timezone is ignored
CS: 2010-01-01T19:00:00.000+0200 - client appends server-provided timezone to date-string
SR: 2010-01-01T19:00:00.000+0200

Mode Fixed Timezone: (Example: GMT+2/ server sends server time but has timezone hint)
SS: 2010-01-01T12:00:00.000-0500 - server sends time in fixed timezone
CR: 2010-01-01T19:00:00.000 - server timezone is ignored
CS: 2010-01-01T19:00:00.000+0200 - client appends server-provided timezone to date-string
SR: 2010-01-01T19:00:00.000+0200

Mode Fixed Timezone: (Example: GMT+2/ server sends fixed time but no timezone hint)
SS: 2010-01-01T19:00:00.000+0200 - server sends time in fixed timezone
CR: 2010-01-01T19:00:00.000 - server timezone is ignored
CS: 2010-01-01T19:00:00.000 - client sends time without timezone
SR: 2010-01-01T19:00:00.000+0200 - server uses client timestamp and appends defined timezone to parse