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)
from datetime import datetime
from pytz import timezone
format = "%Y-%m-%d %H:%M:%S %Z%z"
# Current time in UTC
now_utc = datetime.now(timezone('UTC'))
print(now_utc.strftime(format))
timezones = ['Asia/Dhaka', 'Europe/Berlin', 'America/Los_Angeles']
for tzone in timezones:
# Convert to Asia/Dhaka time zone
now_asia = now_utc.astimezone(timezone(tzone))
print(now_asia.strftime(format))
>>> 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