Match parse_date() behavior for false date_strings

This commit is contained in:
Kovid Goyal 2016-06-04 11:09:27 +05:30
parent ae632d23cc
commit 1cfe7a6f3c
2 changed files with 8 additions and 4 deletions

View File

@ -12,7 +12,7 @@ from functools import partial
from calibre import strftime
from calibre.constants import iswindows, isosx, plugins
from calibre.utils.iso8601 import utc_tz, local_tz
from calibre.utils.iso8601 import utc_tz, local_tz, UNDEFINED_DATE
from calibre.utils.localization import lcdata
_utc_tz = utc_tz
@ -53,7 +53,6 @@ else:
except:
parse_date_day_first = False
UNDEFINED_DATE = datetime(101,1,1, tzinfo=utc_tz)
DEFAULT_DATE = datetime(2000,1,1, tzinfo=utc_tz)
EPOCH = datetime(1970, 1, 1, tzinfo=_utc_tz)

View File

@ -29,9 +29,12 @@ class SafeLocalTimeZone(tzlocal):
utc_tz = tzutc()
local_tz = SafeLocalTimeZone()
del tzutc, tzlocal
UNDEFINED_DATE = datetime(101,1,1, tzinfo=utc_tz)
if hasattr(speedup, 'parse_iso8601'): # For people running from source without updated binaries
def parse_iso8601(date_string, assume_utc=True, as_utc=True):
def parse_iso8601(date_string, assume_utc=False, as_utc=True):
if not date_string:
return UNDEFINED_DATE
dt, aware, tzseconds = speedup.parse_iso8601(date_string)
tz = utc_tz if assume_utc else local_tz
if aware: # timezone was specified
@ -133,7 +136,9 @@ else:
minutes = -minutes
return tzoffset(description, 3600*hours + 60*minutes)
def parse_iso8601(date_string, assume_utc=True, as_utc=True):
def parse_iso8601(date_string, assume_utc=False, as_utc=True):
if not date_string:
return UNDEFINED_DATE
if isinstance(date_string, bytes):
date_string = date_string.decode('ascii')
m = iso_pat().match(date_string)