D'après ce que je comprends, ici (par exemple), ceci devrait imprimer l'année en cours à deux chiffres
print (datetime.strftime("%y"))
Cependant, j'obtiens cette erreur
TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'str'
Alors j'ai essayé de ça
print (datetime.strftime(datetime.date()))
obtenir
TypeError: descriptor 'date' of 'datetime.datetime' object needs an argument
alors j'ai placé "%y"
à l'intérieur de thr date()
ci-dessus pour obtenir
TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'str'
Lesquels commencent à me paraître vraiment très volumineux et louche.
Qu'est-ce que je rate?
import datetime
now = datetime.datetime.now()
print(now.year)
Le code ci-dessus fonctionne parfaitement pour moi.
Ce qui suit semble fonctionner:
import datetime
print (datetime.datetime.now().strftime("%y"))
L'objet datetime.data qu'il souhaite se trouve à gauche du point et non à droite. Vous avez besoin d'une instance de datetime pour appeler la méthode, que vous traversez maintenant ()
# Get The Current Date Or Time
def getdatetime(timedateformat='complete'):
from datetime import datetime
timedateformat = timedateformat.lower()
if timedateformat == 'day':
return ((str(datetime.now())).split(' ')[0]).split('-')[2]
Elif timedateformat == 'month':
return ((str(datetime.now())).split(' ')[0]).split('-')[1]
Elif timedateformat == 'year':
return ((str(datetime.now())).split(' ')[0]).split('-')[0]
Elif timedateformat == 'hour':
return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[0]
Elif timedateformat == 'minute':
return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[1]
Elif timedateformat == 'second':
return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[2]
Elif timedateformat == 'millisecond':
return (str(datetime.now())).split('.')[1]
Elif timedateformat == 'yearmonthday':
return (str(datetime.now())).split(' ')[0]
Elif timedateformat == 'daymonthyear':
return ((str(datetime.now())).split(' ')[0]).split('-')[2] + '-' + ((str(datetime.now())).split(' ')[0]).split('-')[1] + '-' + ((str(datetime.now())).split(' ')[0]).split('-')[0]
Elif timedateformat == 'hourminutesecond':
return ((str(datetime.now())).split(' ')[1]).split('.')[0]
Elif timedateformat == 'secondminutehour':
return (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[2] + ':' + (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[1] + ':' + (((str(datetime.now())).split(' ')[1]).split('.')[0]).split(':')[0]
Elif timedateformat == 'complete':
return str(datetime.now())
Elif timedateformat == 'datetime':
return (str(datetime.now())).split('.')[0]
Elif timedateformat == 'timedate':
return ((str(datetime.now())).split('.')[0]).split(' ')[1] + ' ' + ((str(datetime.now())).split('.')[0]).split(' ')[0]
Pour obtenir l'heure ou la date, il vous suffit de taper getdatetime('TYPE')
et de remplacer TYPE
avec toute des options suivantes (rappelez-vous: assurez-vous que lorsque vous tapez, vous entourez It With Speech Mark (") ou Apostraphies ('))
Tous les exemples de sorties basés sur les mêmes date et heure:
Date: 25-11-2017 | Heure: 03: 23: 56.477017
J'utilise toujours ce code, qui affiche l'année en deuxième position dans un tuple
import datetime
now = datetime.datetime.now()
time_now = (now.year, now.month, now.day, now.hour, now.minute, now.second)
print(time_now)