diff --git a/doc/usage.rst b/doc/usage.rst index 77f800608c..c8736df8a0 100644 --- a/doc/usage.rst +++ b/doc/usage.rst @@ -593,6 +593,11 @@ increases if lower case or decreases if upper case: - `i`: by one minute - `s`: by one second +.. warn:: + Under Windows, the datetime before 1970 are shown in UTC instead of the + local timezone. +.. + Search Widget ^^^^^^^^^^^^^ diff --git a/tryton/common/common.py b/tryton/common/common.py index 80e0219d57..f28c80e7c0 100644 --- a/tryton/common/common.py +++ b/tryton/common/common.py @@ -1344,11 +1344,16 @@ def timezoned_date(date, reverse=False): szone = dateutil.tz.tzutc() if reverse: lzone, szone = szone, lzone - return date.replace(tzinfo=szone).astimezone(lzone).replace(tzinfo=None) + try: + return (date.replace(tzinfo=szone).astimezone(lzone) + .replace(tzinfo=None)) + except (ValueError, OSError): + # https://github.com/dateutil/dateutil/issues/434 + return date.replace(tzinfo=None) def untimezoned_date(date): - return timezoned_date(date, reverse=True).replace(tzinfo=None) + return timezoned_date(date, reverse=True) def humanize(size):