[New-bugs-announce] [issue40997] python 3.8.2: datetime.datetime(1969, 1, 1).timestamp() yields OSError

Eddie Parker report at bugs.python.org
Wed Jun 17 02:33:01 EDT 2020


New submission from Eddie Parker <eddieparker at gmail.com>:

Running the following yields an unexpected OSError: Invalid argument:

Python 3.8.2 (tags/v3.8.2:7b3ab59, Feb 25 2020, 23:03:10) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import datetime
>>> datetime.datetime(1000,1,1).timestamp()
>>> datetime.datetime(1969,1,1).timestamp()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument

I understand that the time can't yield a valid timestamp, but the exception doesn't really explain that and the documentation doesn't mention OSError as an exception to indicate an invalid date is specified.

Ideally a better exception could be used (ValueError?) or the documentation could mention this possibility?  Or even better, allow timestamp() to take a parameter for what to return in the case of an invalid timestamp (None?)

I mention this because I hit this in some asyncio code which was a nuisance to debug and finding it excepting on a timestamp that had worked before with an OS error baffled me until I got it in a debugger.

Thanks as always!

----------
components: Library (Lib)
messages: 371710
nosy: Eddie Parker
priority: normal
severity: normal
status: open
title: python 3.8.2: datetime.datetime(1969,1,1).timestamp() yields OSError
type: behavior
versions: Python 3.8

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue40997>
_______________________________________


More information about the New-bugs-announce mailing list