On Sat, May 30, 2020 at 12:57 AM Ben Axelrod <b...@benaxelrod.com> wrote: > > I was wondering why have restrictions on the datetime.time constructor > arguments? For example, why can't you enter 1.5 minutes or 90 seconds to > create a datetime object with 1 minute and 30 seconds? > > >>> datetime.time(minute=1.5) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > TypeError: integer argument expected, got float > > >>> datetime.time(second=90) > Traceback (most recent call last): > File "<stdin>", line 1, in <module> > ValueError: second must be in 0..59 > > I'd like to use datetime.time for time conversions like this. It seems silly > to have to do all the math and sanitize the inputs manually. If I have to do > all that work myself, then why use this module at all? Is there another > module or function that I am missing? >
I think you're possibly misunderstanding the meaning of the time class. It's meant to represent a point during the day. If you want to represent the concept "one and a half minutes", what you want is the timedelta class instead, which *does* accept both floats and values beyond sixty: >>> datetime.timedelta(minutes=1.5) datetime.timedelta(seconds=90) ChrisA _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/TMRYRYOHBTZHLIVSO73N5MGUQE4NCTCP/ Code of Conduct: http://python.org/psf/codeofconduct/