2013-07-23 9 views
15

Próbuję uzyskać datę UTC ciąg jako "YYYYMMDD"Jak uzyskać ciąg znaków UTC w języku Python?

Na razie wykonaj następujące czynności,

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

kiedyś zrobić:

datetime.date.today().strftime() 

ale to daje mi datę ciąg w miejscowym TZ

Jak mogę uzyskać datę ciąg UTC?

+0

Możliwy duplikat [Jak uzyskać czas UTC w Pythonie?] (Http://stackoverflow.com/questions/15940280/how-to-get-utc-time-in-python) dla części UTC http: //stackoverflow.com/questions/311627/how-to-print-date-in-a-regular-format-in-python dla części strun. –

Odpowiedz

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

Albo jak Davidism podkreślił to również działa:

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

Wolę pierwsze podejście, jak to się robi cię w zwyczaju przy użyciu strefy czasowej świadomych datetimes - ale jak JF Sebastian zauważył - wymaga Python 3.2+. Drugie podejście będzie działać zarówno w gałęziach 2.7 i 3.2.

+5

Dlaczego używać 'timezone.utc' a nie' datetime.utcnow() '? – davidism

+2

@davidism - bo to daje naiwny * * datetime z tzinfo = none. Zobacz [te dokumenty] (http://docs.python.org/3.3/library/datetime.html#datetime.datetime.utcnow). Chociaż, jak przypuszczam, ponieważ OP chce tylko łańcucha znaków, to albo zadziała tutaj. –

+9

uwaga: 'timezone.utc' to tylko Python 3.2+. – jfs

Powiązane problemy