blob: 1d3b3c4d78e17fba28d30573ec701fd2cea128fb [file] [log] [blame]
Fred Drakece520082002-12-23 18:52:19 +00001from datetime import tzinfo
2
3class UTC(tzinfo):
4 """UTC"""
5
6 def utcoffset(self, dt):
7 return 0
8
9 def tzname(self, dt):
10 return "UTC"
11
12 def dst(self, dt):
13 return 0
14
15class FixedOffset(tzinfo):
16 """Fixed offset in minutes east from UTC."""
17
18 def __init__(self, offset, name):
19 self.__offset = offset
20 self.__name = name
21
22 def utcoffset(self, dt):
23 return self.__offset
24
25 def tzname(self, dt):
26 return self.__name
27
28 def dst(self, dt):
29 # It depends on more than we know in an example.
30 return None # Indicate we don't know
31
32import time
33
34class LocalTime(tzinfo):
35 """Local time as defined by the operating system."""
36
37 def _isdst(self, dt):
38 t = (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second,
39 -1, -1, -1)
40 # XXX This may fail for years < 1970 or >= 2038
41 t = time.localtime(time.mktime(t))
42 return t.tm_isdst > 0
43
44 def utcoffset(self, dt):
45 if self._isdst(dt):
46 return -time.timezone/60
47 else:
48 return -time.altzone/60
49
50 def tzname(self, dt):
51 return time.tzname[self._isdst(dt)]