Python 3.12

DeprecationWarning: datetime.datetime.utcnow() is deprecated

DeprecationWarning: datetime.datetime.utcnow() is deprecated

What it means

datetime.utcnow() is deprecated in Python 3.12 because it returns a naive (timezone-unaware) datetime.

Why it happens

Python 3.12 deprecated utcnow() and utcfromtimestamp() to push code toward timezone-aware datetimes. Python has not committed to a removal release in the cited change note.

How to fix it

  1. Replace `datetime.datetime.utcnow()` with `datetime.datetime.now(datetime.timezone.utc)`.
  2. Replace `datetime.datetime.utcfromtimestamp(t)` with `datetime.datetime.fromtimestamp(t, datetime.timezone.utc)`.
  3. If you need a naive value for a legacy API, call `.replace(tzinfo=None)` explicitly after constructing an aware datetime.

Related deadline: Lambda Python 3.9 create/update restrictions2027-02-01.

Check configured patterns in your project

The free EOLkits scanner processes files in your browser and flags selected related patterns in supported IaC and dependency files. File names and contents are not uploaded; bounded aggregate file and finding counts may be sent. It is not a complete source or AWS-account scan.

Prefer a 10-second check? Paste your config into the free AWS EOL checker. Pasted input is not uploaded; bounded first-party usage events may be sent.

Primary source: https://docs.python.org/3/whatsnew/3.12.html

Inspect the $299 report sample and availability →