If we set TimeZone for a specific Date, how does java set time for that Date, like for example if we set PST as the time zone
The time zone data source is implementation-specific, but I believe most implementations use the IANA database (aka zoneinfo, aka tz, aka Olson, aka TZDB).
Note that PST isn't really a time zone - it's "part" of a time zone. The time zone is "Pacific Time", usually specified with an ID of "America/Los_Angeles".