2013-07-23 13 views
15

私は私が行うために使用される、今、私は次の操作を行いについて「YYYYMMDD」とUTCの日付文字列を取得するためにPythonでUTCの日付文字列を取得するには?

nowTime = time.gmtime(); 
nowDate = date(nowTime.tm_year, nowTime.tm_mon, nowTime.tm_mday) 
print nowDate.strftime('%Y%m%d') 

をしようとしています:

datetime.date.today().strftime() 

が、これは私に日付文字列を与えますローカルTZ

UTCの日付文字列を取得するにはどうすればよいですか?

+0

UTCの部分については、[PythonでUTC時間を取得する方法](http://stackoverflow.com/questions/15940280/how-to-get-utc-time-in-python)の可能な複製、http: //stackoverflow.com/questions/311627/how-to-print-date-in-a-regular-format-in-pythonの文字列部分です。 –

答えて

28
from datetime import datetime, timezone 
datetime.now(timezone.utc).strftime("%Y%m%d") 

それともDavidismが指摘したように、これはまた働くだろう:それはタイムゾーンを意識日付時刻を使用しての習慣にあなたを取得として、私は、最初のアプローチを好む

from datetime import datetime 
datetime.utcnow().strftime("%Y%m%d") 

- しかし、JFセバスチャンが指摘したように - Python 3.2以降が必要です。 2番目のアプローチは、2.7と3.2のブランチの両方で機能します。

+5

'datetime.utcnow()'ではなく 'timezone.utc'を使うのはなぜですか? – davidism

+2

@davidism - これはtzinfo = noneの*単純な* datetimeを与えるためです。 [これらのドキュメント](http://docs.python.org/3.3/library/datetime.html#datetime.datetime.utcnow)を参照してください。 OPは文字列がほしいと思うので、私はここで働くでしょう。 –

+9

注: 'timezone.utc'はPython 3.2以降のみです。 – jfs

関連する問題