(Resending this as it was bounced for some reason).
PostgreSQL's "timestamp with time zone" implementation seems to fall short of the standard in the following way.
The standard calls for this datatype to be stored as a timestamp and a separate time zone displacement. This allows for display of such data as it was entered into the system and also allows for the system to recognize two times in different time zones as representing the same universal time.
But PostgreSQL converts an entered timestamp with time zone value into GMT and stores only that. It always displays such a value in the local time zone, not as entered.
Note that PostgreSQL's time with time zone type is implemented differently. Such times are always displayed as entered (both parts are stored), and equivalent universal times are recognized as such.
Is this something that might be changed in the future? Also, will a timestamp without time zone be supported at some point?