This is PostgreSQL 8.4, but the behaviour has not changed from earlier versions:
test=> SHOW timezone;
TimeZone
---------------
Europe/Vienna
(1 row)
test=> SELECT date_part('timezone_hours', timestamp with time zone '2009-06-26 10:05:57.46624+11');
date_part
-----------
2
(1 row)
2 being the offset of my local time zone.
Now an EXPLAIN shows that this is due to the fact that the timestamp
is converted to my local time zone before it is submitted to the function,
but I think that this result is undesirable and misleading.
Yours,
Laurenz Albe