`datetime.timezone.utc` is the original way of doing it and should work just fine on a stock Python 3.11 install. `datetime.UTC` is a relatively recent addition, and if you look at the actual type of the object it returns, it's still `datetime.timezone.utc`
This is verbose because it is dissuaded. The whole point of this change is to not have users get naive datetime objects, of course it gets more verbose.
datatime.utcnow() should be the default way of recording & storing time, e.g. in logs or in the database.
All other options are strictly inferior.
There's no reason for `+00:00` visual noise in the UTC-aware datetime.