Skip to content

Instantly share code, notes, and snippets.

@Jd007
Created March 28, 2013 01:32
Show Gist options
  • Save Jd007/5259751 to your computer and use it in GitHub Desktop.
Save Jd007/5259751 to your computer and use it in GitHub Desktop.
How to create timezone aware datetime objects in python given UTC offset in seconds.
import datetime
class AnyTimeZone(datetime.tzinfo):
# Define this somewhere, and import it whenever you need to make TZ aware datetime objects
def __init__(self, utc_offset, is_dst):
self.utc_offset = utc_offset
self.dst_on = is_dst
def utcoffset(self, dt):
return datetime.timedelta(seconds=self.utc_offset) + self.dst(dt)
def dst(self, dt):
if self.dst_on:
return datetime.timedelta(hours=1)
else:
return datetime.timedelta(hours=0)
def tzname(self, dt):
return "My_TZ_Name"
# Using the class:
easter_std_time = AnyTimeZone(utc_offset=3600*4, is_dst=False) # Create the EST timezone object
tz_aware_dt_now = datetime.datetime.now(easter_std_time) # A timezone aware datetime object of current time
tz_aware_dt = datetime.datetime.fromtimestamp(1324454875, easter_std_time)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment