Ich benutze:
str(datetime.datetime.today()).split()[0]
um das heutige Datum in der Form JJJJ-MM-TT zurückzugeben.
Gibt es einen weniger groben Weg, um dies zu erreichen?
Sie können strftime verwenden:
datetime.datetime.today().strftime('%Y-%m-%d')
Es gibt einen einfacheren Weg als die akzeptierte Antwort; gültig sowohl für Python 2 & 3.
from datetime import date
today = str(date.today())
print(today) # '2017-12-26'
Datetime ist einfach wunderbar, wenn Sie sich an lustige Codes erinnern möchten. Würden Sie nicht die Einfachheit bevorzugen?
>>> import arrow
>>> arrow.now().format('YYYY-MM-DD')
'2017-02-17'
Dieses Modul ist klug genug, um zu verstehen, was Sie bedeuten .
Mach einfach pip install arrow
.
Ich benutze dafür immer die Funktion isoformat()
.
from datetime import date
today = date.today().isoformat()
print(today) # '2018-12-05'
Beachten Sie, dass dies auch für datetime-Objekte funktioniert, wenn Sie die Uhrzeit auch im Standardformat benötigen.
from datetime import datetime
now = datetime.today().isoformat()
print(now) # '2018-12-05T11:15:55.126382'
Andere Antworten legen die Verwendung von Pythons datetime.datetime
nahe, aber wie @Bill Bell sagte, gibt es andere Bibliotheken, die einfachere datetime
Schnittstellen entweder als Service oder als Teil eines größeren Ökosystems von APIs anbieten. Hier sind zwei solcher Bibliotheken, die die Arbeit mit datetimes
sehr einfach machen.
Sie können pd.to_datetime
aus der pandas Bibliothek verwenden. Je nachdem, was Sie zurückgeben möchten, stehen Ihnen verschiedene Optionen zur Verfügung.
import pandas as pd
pd.to_datetime('today') # pd.to_datetime('now')
# Timestamp('2019-03-27 00:00:10.958567')
Als Python datetime Objekt
pd.to_datetime('today').to_pydatetime()
# datetime.datetime(2019, 4, 18, 3, 50, 42, 587629)
Als formatierte Datumszeichenfolge
pd.to_datetime('today').isoformat()
# '2019-04-18T04:03:32.493337'
# Or, `strftime` for custom formats.
pd.to_datetime('today').strftime('%Y-%m-%d')
# '2019-03-27'
Um nur das Datum aus dem Zeitstempel zu erhalten, rufen Sie Timestamp.date
auf.
pd.to_datetime('today').date()
# datetime.date(2019, 3, 27)
Abgesehen von to_datetime
können Sie ein Timestamp
Objekt direkt instanziieren, indem Sie
pd.Timestamp('today') # pd.Timestamp('now')
# Timestamp('2019-04-18 03:43:33.233093')
pd.Timestamp('today').to_pydatetime()
# datetime.datetime(2019, 4, 18, 3, 53, 46, 220068)
Wenn Sie Ihre Timestamp-Zeitzone berücksichtigen möchten, übergeben Sie eine Zeitzone an das Argument tz
.
pd.Timestamp('now', tz='America/Los_Angeles')
# Timestamp('2019-04-18 03:59:02.647819-0700', tz='America/Los_Angeles')
Wenn Sie mit Pendel arbeiten, gibt es einige interessante Möglichkeiten. Sie können den aktuellen Zeitstempel mit now()
oder das heutige Datum mit today()
abrufen.
import pendulum
pendulum.now()
# DateTime(2019, 3, 27, 0, 2, 41, 452264, tzinfo=Timezone('America/Los_Angeles'))
pendulum.today()
# DateTime(2019, 3, 27, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
Darüber hinaus können Sie das Datum von tomorrow()
oder yesterday()
direkt abrufen, ohne eine zusätzliche Zeitdelta-Arithmetik durchführen zu müssen.
pendulum.yesterday()
# DateTime(2019, 3, 26, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
pendulum.tomorrow()
# DateTime(2019, 3, 28, 0, 0, 0, tzinfo=Timezone('America/Los_Angeles'))
Es stehen verschiedene Formatierungsoptionen zur Verfügung.
pendulum.now().to_date_string()
# '2019-03-27'
pendulum.now().to_formatted_date_string()
# 'Mar 27, 2019'
pendulum.now().to_day_datetime_string()
# 'Wed, Mar 27, 2019 12:04 AM'
Dies ist der einfachste Weg, um ein Datum in Python zu erhalten.
from datetime import date
todayDate = date.today()
print(todayDate) #prints today's date for eg. 2019-07-09
Sie müssen nicht einmal Pakete installieren. Diese sind alle bereits in Python integriert.
Nachdem ich datetime
importiert und dann "datetime.
" aus dem Befehl entfernt habe, konnte ich die akzeptierte Antwort zum Funktionieren bringen. Folgendes hat bei mir funktioniert (Python 3.6):
from datetime import datetime
date = datetime.today().strftime('%Y-%m-%d')
Ich bevorzuge das. (weil dies einfach ist, aber möglicherweise ineffizient und fehlerhaft. Sie müssen den Exit-Code des Shell-Befehls überprüfen, wenn Sie ein sehr fehlerfreies stark -Programm wünschen.)
os.system('date +%Y-%m-%d')