From what I gather, here (for example), this should print the current year in two digits
print (datetime.strftime("%y"))
However, I get this error
TypeError: descriptor 'strftime' requires a 'datetime.date' object but received a 'str'
So I tried to this
print (datetime.strftime(datetime.date()))
to get
TypeError: descriptor 'date' of 'datetime.datetime' object needs an argument
so I placed "%y"
inside of thr date()
above to get
TypeError: descriptor 'date' requires a 'datetime.datetime' object but received a 'str'
Which start to seem really loopy and fishy to me.
What am I missing?
I always use this code, which print the year to second in a tuple
import datetime
now = datetime.datetime.now()
time_now = (now.year, now.month, now.day, now.hour, now.minute, now.second)
print(time_now)
I use this which is standard for every time
import datetime
now = datetime.datetime.now()
print ("Current date and time : ")
print (now.strftime("%Y-%m-%d %H:%M:%S"))
This function allows you to get the date and time in lots of formats (see the bottom of this post).
# 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]
To obtain the time or date, just use getdatetime("<TYPE>")
, replacing <TYPE>
with one of the following arguments:
All example outputs use this model information: 25-11-2017 03:23:56.477017
Argument | Meaning | Example output |
---|---|---|
day | Get the current day | 25 |
month | Get the current month | 11 |
year | Get the current year | 2017 |
hour | Get the current hour | 03 |
minute | Get the current minute | 23 |
second | Get the current second | 56 |
millisecond | Get the current millisecond | 477017 |
yearmonthday | Get the year, month and day | 2017-11-25 |
daymonthyear | Get the day, month and year | 25-11-2017 |
hourminutesecond | Get the hour, minute and second | 03:23:56 |
secondminutehour | Get the second, minute and hour | 56:23:03 |
complete | Get the complete date and time | 2017-11-25 03:23:56.477017 |
datetime | Get the date and time | 2017-11-25 03:23:56 |
timedate | Get the time and date | 03:23:56 2017-11-25 |
The following seems to work:
import datetime
print (datetime.datetime.now().strftime("%y"))
The datetime.data object that it wants is on the "left" of the dot rather than the right. You need an instance of the datetime to call the method on, which you get through now()
Please try the below lines in order to get the current date.
import datetime
now = datetime.datetime.now()
print (now.strftime("%Y-%m-%d %H:%M:%S"))
Output:
2020-02-26 21:15:32
Refer : https://beginnersbug.com/how-to-get-the-current-date-in-pyspark-with-example/
Source: Stackoverflow.com