Ответ 1
import datetime
now = datetime.datetime.now()
print(now.year)
Приведенный выше код прекрасно работает для меня.
Из того, что я собираюсь, здесь (например), это должно печатать текущий год двумя цифрами
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'
Который начинает казаться действительно зацикленным и подозрительным для меня.
Что мне не хватает?
import datetime
now = datetime.datetime.now()
print(now.year)
Приведенный выше код прекрасно работает для меня.
Кажется, что работает следующее:
import datetime
print (datetime.datetime.now().strftime("%y"))
Объект datetime.data, который он хочет, находится "слева" от точки, а не справа. Вам нужен экземпляр datetime для вызова метода, который вы сейчас используете()
# 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
Я всегда использую этот код, который печатает год в секунду в кортеже
import datetime
now = datetime.datetime.now()
time_now = (now.year, now.month, now.day, now.hour, now.minute, now.second)
print(time_now)
Я использую это, что является стандартным для каждого раза
import datetime
now = datetime.datetime.now()
print ("Current date and time : ")
print (now.strftime("%Y-%m-%d %H:%M:%S")