2012-07-05 13 views
5

datetime.datetime.now()の出力は、UTC-8の本来のタイムゾーンで出力されます。私はそれをUTCのtzinfoで適切なタイムスタンプに変換したいと思います。NameError:名前 'UTC'が定義されていません

from datetime import datetime, tzinfo 
x = datetime.now() 
x = x.replace(tzinfo=UTC) 

^出力NameError:名 'UTC' が定義されていない

x.replace(tzinfo=<UTC>)出力にSyntaxError:無効な構文が

x.replace(tzinfo='UTC')出力はTypeErrorは:tzinfoの引数の値はNoneまたはtzinfoのサブクラスで、 'と入力していませんstr '

私の例を達成するために使用する正しい構文は何ですか?

+1

Pythonの標準ライブラリには、任意のtzinfoのクラスが含まれていません、 UTCを含む。ドキュメントには、作成するための説明が含まれています。 –

答えて

8

pytzなどの追加ライブラリを使用する必要があります。 Pythonのdatetimeモジュールには、UTCを含むtzinfoクラスは含まれておらず、ローカルタイムゾーンも含まれていません。

+1

+1これらの電池は含まれていません:( –

+1

ありがとう!好奇心をそそる人には、 'x.replace(tzinfo = pytz.utc)+ timedelta(hours = 8)' –

3

あなたが探しているすべての時間はUTCに今ある場合、日時はそのための組み込みを持っています

x = datetime.utcnow() 

残念ながら、それはどんなtzinfoが含まれていませんが、それはあなたのUTC時間を与えるん。あなたはこれを行うことができますtzinfoの必要がある場合

代わり:

from datetime import datetime 
import pytz 
x = datetime.now(tz=pytz.timezone('UTC')) 

をあなたはまた、タイムゾーンのリストに興味があるかもしれない:Python - Pytz - List of Timezones?

関連する問題