J'utilise:
str(datetime.datetime.today()).split()[0]
pour renvoyer la date d'aujourd'hui sous la forme AAAA-MM-JJ .
Y a-t-il un moyen moins brutal d'y parvenir?
Vous pouvez utiliser strftime :
datetime.datetime.today().strftime('%Y-%m-%d')
Il y a un moyen encore plus simple que la réponse acceptée; valable à la fois pour Python 2 et 3.
from datetime import date
today = str(date.today())
print(today) # '2017-12-26'
Datetime est tout simplement magnifique si vous aimez vous souvenir de codes amusants. Ne préférez-vous pas la simplicité?
>>> import arrow
>>> arrow.now().format('YYYY-MM-DD')
'2017-02-17'
Ce module est assez intelligent pour comprendre ce que vous voulez dire.
Il suffit de faire pip install arrow
.
J'utilise toujours la fonction isoformat()
pour cela.
from datetime import date
today = date.today().isoformat()
print(today) # '2018-12-05'
Notez que cela fonctionne également sur les objets datetime si vous avez également besoin de l'heure au format standard.
from datetime import datetime
now = datetime.today().isoformat()
print(now) # '2018-12-05T11:15:55.126382'
D'autres réponses suggèrent l'utilisation du datetime.datetime
de python, mais comme l'a dit @Bill Bell, il existe d'autres bibliothèques offrant des interfaces datetime
plus simples, en tant que service ou dans le cadre d'un écosystème plus large d'API. Voici deux de ces bibliothèques qui rendent le travail avec datetimes
très simple.
Vous pouvez utiliser pd.to_datetime
à partir de pandas library. Voici différentes options, en fonction de ce que vous voulez retourner.
import pandas as pd
pd.to_datetime('today') # pd.to_datetime('now')
# Timestamp('2019-03-27 00:00:10.958567')
En tant que python datetime object,
pd.to_datetime('today').to_pydatetime()
# datetime.datetime(2019, 4, 18, 3, 50, 42, 587629)
En tant que chaîne de date formatée,
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'
Pour obtenir uniquement la date de l'horodatage, appelez Timestamp.date
.
pd.to_datetime('today').date()
# datetime.date(2019, 3, 27)
Mis à part to_datetime
, vous pouvez directement instancier un objet Timestamp
en utilisant,
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)
Si vous souhaitez définir votre fuseau horaire Timestamp, transmettez-le à l'argument tz
.
pd.Timestamp('now', tz='America/Los_Angeles')
# Timestamp('2019-04-18 03:59:02.647819-0700', tz='America/Los_Angeles')
Si vous travaillez avec pendule , il existe des choix intéressants. Vous pouvez obtenir l’horodatage actuel en utilisant now()
ou la date du jour en utilisant today()
.
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'))
De plus, vous pouvez aussi obtenir directement la date de tomorrow()
ou yesterday()
sans avoir à faire d’autres calculs arithmétiques timedelta.
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'))
Il existe différentes options de formatage disponibles.
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'
C'est le moyen le plus simple d'obtenir une date en python.
from datetime import date
todayDate = date.today()
print(todayDate) #prints today's date for eg. 2019-07-09
Vous n'avez même pas besoin d'installer de paquet. Ils sont tous déjà intégrés à python.
J'ai pu obtenir la réponse acceptée une fois que j'ai importé datetime
, puis supprimé "datetime.
" de la commande. Voici ce qui a fonctionné pour moi (python 3.6):
from datetime import datetime
date = datetime.today().strftime('%Y-%m-%d')
Je préfère ça. (parce que c'est simple. mais peut-être quelque peu inefficace et bogué. Vous devez vérifier le code de sortie de la commande Shell si vous voulez un programme très fortement anti-erreur.)
os.system('date +%Y-%m-%d')