J'utilise:
str(datetime.datetime.today()).split()[0]
pour renvoyer la date du jour au YYYY-MM-DD
format.
Existe-t-il un moyen moins grossier pour y parvenir?
J'utilise:
str(datetime.datetime.today()).split()[0]
pour renvoyer la date du jour au YYYY-MM-DD
format.
Existe-t-il un moyen moins grossier pour y parvenir?
Réponses:
Vous pouvez utiliser strftime :
from datetime import datetime
datetime.today().strftime('%Y-%m-%d')
De plus, pour tous ceux qui recherchent également une heure, une minute et une seconde à la fin: (Commentaire de Gabriel Staples )
datetime.today().strftime('%Y-%m-%d-%H:%M:%S')
datetime.datetime.today().strftime('%Y-%m-%d-%H:%M:%S')
time.strftime("%Y-%m-%d")
?
datetime.utcnow().strftime('%Y-%m-%d')
date
cela est disponible ainsi quedatetime
Vous pouvez utiliser datetime.date.today()
et convertir l' datetime.date
objet résultant en une chaîne:
from datetime import date
today = str(date.today())
print(today) # '2017-12-26'
/
?
date.today().strftime('%Y/%m/%d')
.
«DMY», le séparateur /
vers M/D/Y
et le séparateur -
vers Y-M-D
. Bien que tout le monde ne suive pas ces directives, il serait utile de lire les dates à l'échelle internationale tant que tout le monde n'est pas passé à Y-M-D
.
Datetime est tout simplement charmant si vous aimez vous souvenir des 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 .
Faites-le pip install arrow
.
Addendum: En réponse à ceux qui s'exercent sur cette réponse, permettez-moi de dire que la flèche représente l'une des approches alternatives pour gérer les dates en Python. C'est surtout ce que je voulais suggérer.
print(date.today())
>> "2018-12-16" ?? lol et obtenir facilement les valeurs int t.year,t.month,t.day+1
>> (2018, 12, 17) où t = date.today()
et le fait que les gens n'ont pas à appeler la flèche verte pour leur dire l'heure. oh mon dieu c'est trop de code à retenir ...
import datetime
différent de import arrow
? Bien sûr, un est intégré, mais si arrow
fournit un format plus pratique, alors pourquoi ne pas l'utiliser?
arrow
? Mais, pour de nombreux projets simples, c'est tout simplement inutile. De plus, dans de nombreux projets internes à l'entreprise, ppl doit obtenir l'approbation pour l'inclusion de nouvelles bibliothèques.
J'utilise toujours la isoformat()
fonction 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 de python datetime.datetime
, mais comme @Bill Bell l'a dit, il existe d'autres bibliothèques qui offrent des datetime
interfaces plus simples soit en tant que service, soit en tant que partie d'un écosystème plus large d'API. Voici deux de ces bibliothèques qui rendent le travail datetimes
très simple.
Vous pouvez utiliser à pd.to_datetime
partir de la bibliothèque pandas . Voici différentes options, selon ce que vous souhaitez retourner.
import pandas as pd
pd.to_datetime('today') # pd.to_datetime('now')
# Timestamp('2019-03-27 00:00:10.958567')
En tant qu'objet datetime python ,
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 instancier directement un Timestamp
objet 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 rendre votre fuseau horaire Timestamp conscient, passez un fuseau horaire à l' tz
argument.
pd.Timestamp('now', tz='America/Los_Angeles')
# Timestamp('2019-04-18 03:59:02.647819-0700', tz='America/Los_Angeles')
Si vous travaillez avec un pendule , il existe des choix intéressants. Vous pouvez obtenir l'horodatage actuel en utilisant now()
ou la date d'aujourd'hui 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 également obtenir tomorrow()
ou yesterday()
la date de » directement , sans avoir à faire une arithmétique timedelta supplémentaire.
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'))
Plusieurs options de formatage sont 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'
Réponse très tardive, mais vous pouvez utiliser:
import time
today = time.strftime("%Y-%m-%d")
# 2020-02-14
Vous pouvez utiliser,
>>> from datetime import date
>>> date.today().__str__()
'2019-10-05'
str(date.today())
est probablement encore mieux
Je préfère cela, car c'est simple, mais peut-être en quelque sorte inefficace et bogué. Vous devez vérifier le code de sortie de la commande shell si vous voulez un programme fortement protégé contre les erreurs.
os.system('date +%Y-%m-%d')