web-dev-qa-db-fra.com

Comment imprimer la date du jour sur python3?

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?

40
Yotam
import datetime
now = datetime.datetime.now()

print(now.year)

Le code ci-dessus fonctionne parfaitement pour moi.

66
user1853788

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 ()

18
Paul Rubel

Ce code vous permettra d'obtenir la date et l'heure dans tous les formats auxquels vous pouvez penser: (Regardez au bas de ce post pour plus d'informations)

# 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

Table Of Arguments With Meanings And Example Outputs

5
Richie Bendall

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)
3
Amir_N