From dac8393c8078705ec75bd81cc63998b289680cf9 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Fri, 18 Nov 2011 13:04:58 +0100 Subject: [PATCH 1/2] Fix regression in bulk edit that broke the clear buttons --- src/calibre/gui2/dialogs/metadata_bulk.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/calibre/gui2/dialogs/metadata_bulk.py b/src/calibre/gui2/dialogs/metadata_bulk.py index 60ea1b62e9..046b32234a 100644 --- a/src/calibre/gui2/dialogs/metadata_bulk.py +++ b/src/calibre/gui2/dialogs/metadata_bulk.py @@ -350,13 +350,13 @@ class MetadataBulkDialog(ResizableDialog, Ui_MetadataBulkDialog): self.apply_pubdate.setChecked(True) def clear_pubdate(self, *args): - self.pubdate.setMinimumDateTime(UNDEFINED_QDATETIME) + self.pubdate.setDateTime(UNDEFINED_QDATETIME) def do_apply_adddate(self, *args): self.apply_adddate.setChecked(True) def clear_adddate(self, *args): - self.adddate.setMinimumDateTime(UNDEFINED_QDATETIME) + self.adddate.setDateTime(UNDEFINED_QDATETIME) def button_clicked(self, which): if which == self.button_box.button(QDialogButtonBox.Apply): From 25ab93133d1535b3b221fb4a771cfd3afcd30311 Mon Sep 17 00:00:00 2001 From: Charles Haley <> Date: Fri, 18 Nov 2011 13:09:45 +0100 Subject: [PATCH 2/2] Use "localtime" in clean_date_for_sort, which is more likely to be what the user is really looking at. Continue to use non-naive dates so that differences in DST are taken into account. --- src/calibre/utils/date.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/calibre/utils/date.py b/src/calibre/utils/date.py index 0de50e4122..faac8795d4 100644 --- a/src/calibre/utils/date.py +++ b/src/calibre/utils/date.py @@ -291,6 +291,11 @@ def clean_date_for_sort(dt, format): if not isinstance(dt, datetime): dt = datetime.combine(dt, time()) + if hasattr(dt, 'tzinfo'): + if dt.tzinfo is None: + dt = dt.replace(tzinfo=_local_tz) + dt = as_local_time(dt) + if format == 'iso': format = 'yyMdhms'