Kann man das Ausgabeformat von einem Timestamp auch irgendwie beinflussen?

Hallo,
ich hätte gerne einen Timestamp in dem folgenden Format:
2010-01-01T20:00:00+01:00

ich bekomme ihn allerdings als
2010-01-01 20:00:00+01

Nun kommen aber einige Programme mit diesem Timestamp nicht zurecht, also wenn es alternativen geben würde, dann wäre das echt toll.

Ich habe schon folgendes Probiert:

SELECT to_char( now(), 'IYYY-MM-DD"T"HH24:MI:ss');

Allerdings kann ich dann da nicht den Offset nicht automatisch dazugeben.
Auch habe ich bemerkt, dass mir die Funktion das ganze immer als UTC zurückliefert. Ist das Immer so? (Mein server läuft mit utc, aber wer weiß, vielleicht irgendwann nicht mehr…)

Also wenn dem so wäre, dass die funktion immer UTC zurückliefert, könnte man ja auch folgendes schreiben:

SELECT to_char(  '2010-01-01T00:00:00+02:00'::timestamptz, 'IYYY-MM-DD"T"HH24:MI:ss+00:00');

Daher meine Frage: gibt es schon eine Funktion, die das so macht wie ich es will, oder nicht und ich muss es selbst implementieren?
Wenn nein, gibt es eine elegantere Möglichkeit, den Timestampoffset zu extrahieren, als ich es in diesem Fall gemacht hab?

mfg.