Note that the API for TimeZone does say:
Three-letter time zone IDs
For compatibility with JDK 1.1.x, some other three-letter time zone IDs (such as "PST", "CTT", "AST") are also supported. However, their use is deprecated because the same abbreviation is often used for multiple time zones (for example, "CST" could be U.S. "Central Standard Time" and "China Standard Time"), and the Java platform can then only recognize one of them.
Programmers needing to retain the old behavior (assuming it's too much trouble to fix the time zone codes to something more appropriate) can follow the instructions in this Sun alert.