From 71e0e95adf165a8c8701f733a14a495d8d408711 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 6 Jul 2011 13:20:14 -0600 Subject: [PATCH] ... --- src/calibre/ebooks/metadata/sources/identify.py | 8 +++++--- src/calibre/utils/date.py | 8 ++++++++ 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/calibre/ebooks/metadata/sources/identify.py b/src/calibre/ebooks/metadata/sources/identify.py index f92782bb3c..872a3c7b87 100644 --- a/src/calibre/ebooks/metadata/sources/identify.py +++ b/src/calibre/ebooks/metadata/sources/identify.py @@ -19,7 +19,7 @@ from calibre.customize.ui import metadata_plugins, all_metadata_plugins from calibre.ebooks.metadata.sources.base import create_log, msprefs from calibre.ebooks.metadata.xisbn import xisbn from calibre.ebooks.metadata.book.base import Metadata -from calibre.utils.date import utc_tz +from calibre.utils.date import utc_tz, as_utc from calibre.utils.html2text import html2text from calibre.utils.icu import lower @@ -311,8 +311,10 @@ class ISBNMerge(object): else: min_date = datetime(3001, 1, 1, tzinfo=utc_tz) for r in results: - if r.pubdate is not None and r.pubdate < min_date: - min_date = r.pubdate + if r.pubdate is not None: + candidate = as_utc(r.pubdate) + if candidate < min_date: + min_date = candidate if min_date.year < 3000: ans.pubdate = min_date diff --git a/src/calibre/utils/date.py b/src/calibre/utils/date.py index 2c973da224..99be4af47c 100644 --- a/src/calibre/utils/date.py +++ b/src/calibre/utils/date.py @@ -132,6 +132,14 @@ def as_local_time(date_time, assume_utc=True): _local_tz) return date_time.astimezone(_local_tz) +def as_utc(date_time, assume_utc=True): + if not hasattr(date_time, 'tzinfo'): + return date_time + if date_time.tzinfo is None: + date_time = date_time.replace(tzinfo=_utc_tz if assume_utc else + _local_tz) + return date_time.astimezone(_utc_tz) + def now(): return datetime.now().replace(tzinfo=_local_tz)