The whole code base uses naive date time and TIMESTAMP WITHOUT TIME ZONE.

Now there’s conversion issues appearing in federation where timezones are not handled correctly.

Using NaiveDateTime is … naive? So this PR removes all instances of naive time and adds defined timezones to everything (usually Utc).

Now, no conversions are needed anymore.

The database migration is extensive but it is free (no rewrite needed) since PG 12.

Originally posted by phiresky in #3496