#as an aware datetime
from datetime import datetime, timezone
utc_dt = datetime.now(timezone.utc) # UTC time
dt = utc_dt.astimezone() # local time
#or from pytz database
import pytz
tz = pytz.timezone('Europe/Berlin')
berlin_now = datetime.now(tz)
import datetime
import pytz
d = datetime.datetime.now()
timezone = pytz.timezone("America/Los_Angeles")
# List of Time Zones: https://gist.github.com/heyalexej/8bf688fd67d7199be4a1682b3eec7568
d_aware = timezone.localize(d)
d_aware.tzinfo
# One Liner
timezone.localize(datetime.datetime.now())
# Timestamp to Datetime with timezone
datetime.fromtimestamp(3456789, timezone)
>>> import pytz
>>> from datetime import datetime, date, time
# To get the UTC time of current day (today) for a given time zone
# use the localize() function of the pytz.
# The reason for this is that the localize() takes into account the Day Time Saving
# which niether the datetime constructors nor replace() account for.
#
# To for example, the utc time of today in australia time zone:
import pytz
from datetime import datetime, date, time
# set time zone
tz = pytz.timezone("Australia/Melbourne")
# Get today's date in the current time zone (i.e local time)
todaydate = date.today() # you can also use date(2022, 2, 8)
# Get midnight of today (still local time)
# note time() without arguments will result to midnight
midnight_local = datetime.combine(todaydate, time())
print midnight_local
# convert this midnight datetime to the midnight datetime
# in the given time zone. In this case autralia time zone
austra_midnight = tz.localize(midnight_local)
print austra_midnight
# convert the midnight time in australia time zone to UTC
midnight_austra_utc = austra_midnight.astimezone(pytz.uct)
print midnight_austra_utc
# Ref:
# https://stackoverflow.com/questions/373370/how-do-i-get-the-utc-time-of-midnight-for-a-given-timezone
The most prevalent library for timezones in python is pytz, which can be installed by:
pip install pytz
It allows you to manipulate times by assigning times to timezones using Olsen timezones (e.g. Europe/London).