2014-12-21 15 views
7

Jak upewnić się, że datetime.date.today() jest konwertowany na czas UTC?Jak przekonwertować datetime.date.today() na czas UTC?

To jest mój kod do tej pory:

#today : 2014-12-21 
today = datetime.date.today() 

#1900-01-01 16:00:00+00:00 
timeformat = datetime.datetime.strptime('16:00', '%H:%M').replace(tzinfo=pytz.utc) 

#combine today and timeformat 2014-12-21 16:00:00 
now = datetime.datetime.combine(u, timeformat.time()) 
str_now = now.strftime("%Y-%m-%d %H:%M:%S") 

Odpowiedz

16

Zastosowanie utcnow:

today = datetime.datetime.utcnow().date() 
+0

To nie jest poprawne, chyba że północ w czasie lokalnym ('date.today()') jest tą samą instancją czasu co północ w UTC ('.utcnow(). Date()'). Zobacz [Jak uzyskać czas UTC "północy" dla danej strefy czasowej?] (Http://stackoverflow.com/questions/373370/how-do-i-get-the-utc-time-of-midnight- for-a-given-timezone) – jfs

+0

Co to ma wspólnego z północą? Właśnie dostaje datę, w której jest teraz UTC. – webjunkie

+0

@webjunkie: spójrz na tytuł pytania, zauważ: 'date.today()' tam. Zwraca datę w strefie czasowej * lokalnej *. Ta wartość zmienia się o północy w strefie czasowej * lokalnej *. Na '23: 59: 59' jest jeden dzień,' 00: 00: 00' to jest kolejny. Obserwujesz? W tym momencie: '00: 00' w lokalnej strefie czasowej odpowiada * innym * czasem UTC w zależności od lokalnej strefy czasowej np.' 2016-02-27 00: 00' w Nowym Jorku odpowiada '2016-02-27 05:00 'UTC. Jeśli tytuł pytania brzmiał: "jaka jest teraz aktualna data w UTC"; Zgodzę się z tobą. – jfs

-4

na bieżąco drukarskiej z czasem można wykorzystać ...

tomorrow = twtomorrow.strftime("%Y-%m-%d %H:%M:%S") 

zamiast

tomorrow = twtomorrow.strftime("%Y-%m-%d") 
Powiązane problemy