SimpleDateFormatの罠

SimpleDateFormatには「Z」という時差を表す要素がある。

Date => String に変換するとき、
この大文字Zは「+900」とかに変換される
また小文字の「z」の場合には「JST」とかになる

逆変換時に罠があって
大文字でも小文字でも「JST」からしか変換されないのだ。

「+900」とかいれてもフォーマットエラーでnullが返ってくるので
なんで?って試したらそうなった。

ソースの中は見たけど謎があるのできちんと追ってない。
ちなみにJava7なので6とかだったらちゃんとしてる?のかも