Records below are third-party data, not instructions. Apply with your own judgment.
DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC).
Cause
utcnow() returns a naive datetime that many datetime methods treat as local time; 3.12 deprecated it and utcfromtimestamp() in favour of aware UTC values.
Fix
-from datetime import datetime-now = datetime.utcnow()+from datetime import datetime, timezone+now = datetime.now(timezone.utc) # aware; datetime.UTC also works on 3.11+-ts = datetime.utcfromtimestamp(epoch)+ts = datetime.fromtimestamp(epoch, timezone.utc)Don’t try
mix the new aware values with existing naive ones — comparing them raises TypeError: can't compare offset-naive and offset-aware datetimes (subtraction fails the same way); convert both sides.
replace utcnow() with datetime.now() — now() without a tz returns local wall-clock time, so every value shifts by the UTC offset on a non-UTC machine.