9

私のタイムゾーンはUTC+5です。

したがって、datetime.datetime.now()を実行すると、次のようになります。

2012-07-14 06:11:47.318000
#note its 6AM

5私はそれから時間を引いて、それが等しくなるようにしたかったdatetime.datetime.utcnow()ので、私はしました:

import time
from datetime import datetime, timedelta
dt = datetime.now() - timedelta(hours=time.timezone/60/60)
print dt
#gives 2012-07-14 11:11:47.319000

"""
Here 11 is not the PM its AM i double check it by doing
print dt.strftime('%H:%M:%S %p')
#gives 11:11:47 AM
"""

5時間を引く代わりに、日時に5時間を追加しますか?私はここで何か間違ったことをしていますか?

4

2 に答える 2

9

負のタイムデルタを作成しています。の値time.timezoneは負です:

>>> import time
>>> time.timezone
-36000

ここでは、UTC + 10を使用しているため、コードは次のようになります。

>>> from datetime import timedelta
>>> print timedelta(hours=time.timezone/60/60)
-1 day, 14:00:00
于 2012-07-14T01:32:18.117 に答える
5

ドキュメントは明確です:

time.timezone UTCの西の秒単位でのローカル(非DST)タイムゾーンのオフセット(西ヨーロッパのほとんどで負、米国では正、英国ではゼロ)。

したがって、正のUTC値には負のタイムゾーンがあります。

于 2012-07-14T01:33:31.227 に答える