diff --git a/src/calibre/utils/date.py b/src/calibre/utils/date.py index aa7714df2d..50b98b39b8 100644 --- a/src/calibre/utils/date.py +++ b/src/calibre/utils/date.py @@ -118,8 +118,13 @@ def utcnow(): def utcfromtimestamp(stamp): return datetime.utcfromtimestamp(stamp).replace(tzinfo=_utc_tz) -def format_date(dt, format): +def format_date(dt, format, assume_utc=False, as_utc=False): ''' Return a date formatted as a string using a subset of Qt's formatting codes ''' + if hasattr(dt, 'tzinfo'): + if dt.tzinfo is None: + dt = dt.replace(tzinfo=_utc_tz if assume_utc else + _local_tz) + dt = dt.astimezone(_utc_tz if as_utc else _local_tz) strf = partial(strftime, t=dt.timetuple()) def format_day(mo):