Как распечатать текущую дату на python3?

Из того, что я собираюсь, здесь (например), это должно печатать текущий год двумя цифрами

print (datetime.strftime("%y"))

Однако я получаю эту ошибку

TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'str'

Итак, я попытался это сделать

print (datetime.strftime(datetime.date()))

чтобы получить

TypeError: descriptor 'date' of 'datetime.datetime' object needs an argument

поэтому я разместил "%y" внутри thr date() выше, чтобы получить

TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'str'

Который начинает казаться действительно зацикленным и подозрительным для меня.

Что мне не хватает?

Ответы

Ответ 1

import datetime
now = datetime.datetime.now()

print(now.year)

Приведенный выше код прекрасно работает для меня.

Ответ 2

Кажется, что работает следующее:

import datetime
print (datetime.datetime.now().strftime("%y"))

Объект datetime.data, который он хочет, находится "слева" от точки, а не справа. Вам нужен экземпляр datetime для вызова метода, который вы сейчас используете()

Ответ 3

Этот код позволит вам получить дату и время в любом формате, который вы можете себе представить: (смотрите в нижней части этого поста для получения дополнительной информации)

# 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]

Чтобы узнать время или дату, просто введите getdatetime('TYPE') и замените TYPE на любое из следующего (помните: убедитесь, что при вводе текста вы окружаете его речевыми метками (") Или Апострафы ('))

Все примеры выходных данных основаны примерно на одном и том же времени и дате:

Date: 25-11-2017 | Time: 03:23:56.477017

Table Of Arguments With Meanings And Example Outputs

Ответ 4

Я всегда использую этот код, который печатает год в секунду в кортеже

import datetime

now = datetime.datetime.now()

time_now = (now.year, now.month, now.day, now.hour, now.minute, now.second)

print(time_now)

Ответ 5

Я использую это, что является стандартным для каждого раза

import datetime
now = datetime.datetime.now()
print ("Current date and time : ")
print (now.strftime("%Y-%m-%d %H:%M:%S")