Because Date has, by definition, no concept of time.
The only reason why you see it is because someone decided to save a bit of time and reuse implementation.
If you want to move TZ, you need something that _has_ time. Such as DateAndTime.
You can also read the comments ...
Date
>��Instances of Date are Timespans with duration of 1 day.
it represents an entire day, not a particular time point
DateAndTime
>��I represent a point in time or timestamp as defined by ISO 8601.��
>��I am TimeZone aware.��
I really don't understand why are you trying to force TZ into Date against it's purpose when you have a class that does exactly what you want and was built for that purpose.
Peter