Created
March 28, 2013 01:32
-
-
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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