シドニーのユーザー向けに実行されている Plone インスタンスを持っているので、TZ 環境変数は に設定されていAustralia/Sydney
ます。このセットでは、DateTime
Zope2 のモジュールを使用するコードは間違ったタイムゾーンを表示する結果を生成します。例えば:
>>> import time
>>> import DateTime
>>> print time.strftime("%a, %d %b %Y %T %z") #
Thu, 20 Sep 2012 02:38:08 +1000
>>> print DateTime.DateTime().rfc822()
Thu, 20 Sep 2012 02:38:08 -0400
これは、送信メールProducts.MailHost
のヘッダーを値に設定するため、かなり問題があります(MailHost.py の 466 行目)。オフセットが間違っているため、Date ヘッダーの時刻は 12 時間先になっています。その電子メールを受信した SMTP サーバーは、多くの場合、即座に拒否します!Date:
DateTime().rfc822()
同じインスタンス内の他のコードは、すべて libc の関数datetime
に基づいている Pythonのモジュールを使用しているため、その TZ 変数で正しく動作しています。time.h
では、Plone の MailHost をオーストラリアのタイムゾーンで動作させるにはどうすればよいのでしょうか?