user11926245
user11926245

Reputation:

User input in date time format Python

I need to get date and time from the user and convert it to epoch. I'm pretty new to Python, so don't judge the question harshly =) I've done my research and if I understand correctly, the only way to get the input from a user in Python 3.x is through input() which retrieves either a string or an int. My current plan is to use input(), parse the string with dateutil parser, and then do something like:

import time
time_now = time.strptime('2019-08-30 18:37:06', '%Y-%m-%d %H:%M:%S')
time_epoch = time.mktime(time_now)

Is there a simpler way to achieve this? Maybe, there is a version of input() or a function to achieve this and I'm reinventing the wheel? Thanks in advance!

Upvotes: 0

Views: 2697

Answers (2)

Aadil Jamal
Aadil Jamal

Reputation: 1

import calendar

MM,DD,YYYY = map(int,input().split())

day = calendar.weekday(YYYY,MM,DD)

daynumber =[
'MONDAY','TUESDAY', 'WEDNESDAY','THURSDAY','FRIDAY','SATURDAY','SUNDAY'
]
print(daynumber[day])

Upvotes: 0

rthomsen
rthomsen

Reputation: 71

If you're using Python 3.3 or newer, you can simply call the timestamp method of the datetime object to get the epoch timestamp. No need to import time.

>>> from dateutil.parser import parse
>>> value = parse('2019-08-31 12:20')
>>> value.timestamp()
1567246800.0

Note that you may wish to set up handling of invalid user input that can't be parsed. You can do this by catching any ValueError exceptions:

try:
    value = parse(input('Date: '))
except ValueError:
    # user input couldn't be parsed -- handle this however you need to

Upvotes: 2

Related Questions