New submission from Eddie Parker <eddiepar...@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 <rep...@bugs.python.org>
<https://bugs.python.org/issue40997>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to