]> granicus.if.org Git - python/commitdiff
Move the examples of concrete tzinfo classes to a separate file, so the
authorFred Drake <fdrake@acm.org>
Mon, 23 Dec 2002 18:52:19 +0000 (18:52 +0000)
committerFred Drake <fdrake@acm.org>
Mon, 23 Dec 2002 18:52:19 +0000 (18:52 +0000)
verbatim environment does not bollux page breaking.

Doc/lib/tzinfo-examples.py [new file with mode: 0644]

diff --git a/Doc/lib/tzinfo-examples.py b/Doc/lib/tzinfo-examples.py
new file mode 100644 (file)
index 0000000..1d3b3c4
--- /dev/null
@@ -0,0 +1,51 @@
+from datetime import tzinfo
+
+class UTC(tzinfo):
+    """UTC"""
+
+    def utcoffset(self, dt):
+        return 0
+
+    def tzname(self, dt):
+        return "UTC"
+
+    def dst(self, dt):
+        return 0
+
+class FixedOffset(tzinfo):
+    """Fixed offset in minutes east from UTC."""
+
+    def __init__(self, offset, name):
+        self.__offset = offset
+        self.__name = name
+
+    def utcoffset(self, dt):
+        return self.__offset
+
+    def tzname(self, dt):
+        return self.__name
+
+    def dst(self, dt):
+        # It depends on more than we know in an example.
+        return None # Indicate we don't know
+
+import time
+
+class LocalTime(tzinfo):
+    """Local time as defined by the operating system."""
+
+    def _isdst(self, dt):
+        t = (dt.year, dt.month, dt.day, dt.hour, dt.minute, dt.second,
+             -1, -1, -1)
+        # XXX This may fail for years < 1970 or >= 2038
+        t = time.localtime(time.mktime(t))
+        return t.tm_isdst > 0
+
+    def utcoffset(self, dt):
+        if self._isdst(dt):
+            return -time.timezone/60
+        else:
+            return -time.altzone/60
+
+    def tzname(self, dt):
+        return time.tzname[self._isdst(dt)]