Provide timezone information in `datetime.fromtimestamp`

Python 3.12 has deprecated ``datetime.utcfromtimestamp``,
use timezone-aware datetime objects instead.
This commit is contained in:
Adam Turner 2023-07-24 12:39:50 +01:00
parent 82bc15aec3
commit 914c317a1e
2 changed files with 7 additions and 6 deletions

View File

@ -9,7 +9,7 @@ import re
import sys
import warnings
import zlib
from datetime import datetime
from datetime import datetime, timezone
from os import path
from typing import IO, Any, Iterable, Iterator, List, Tuple, Type
from urllib.parse import quote
@ -432,10 +432,11 @@ class StandaloneHTMLBuilder(Builder):
logger.debug(
'[build target] targetname %r(%s), template(%s), docname %r(%s)',
targetname,
datetime.utcfromtimestamp(targetmtime),
datetime.utcfromtimestamp(template_mtime),
datetime.fromtimestamp(targetmtime, tz=timezone.utc),
datetime.fromtimestamp(template_mtime, tz=timezone.utc),
docname,
datetime.utcfromtimestamp(path.getmtime(self.env.doc2path(docname))),
datetime.fromtimestamp(path.getmtime(self.env.doc2path(docname)),
tz=timezone.utc),
)
yield docname
except OSError:

View File

@ -193,9 +193,9 @@ def format_date(
# See https://wiki.debian.org/ReproducibleBuilds/TimestampsProposal
source_date_epoch = os.getenv('SOURCE_DATE_EPOCH')
if source_date_epoch is not None:
date = datetime.utcfromtimestamp(float(source_date_epoch))
date = datetime.fromtimestamp(float(source_date_epoch), tz=timezone.utc)
else:
date = datetime.now(timezone.utc).astimezone()
date = datetime.now(tz=timezone.utc).astimezone()
result = []
tokens = date_format_re.split(format)