Index: third_party/mozdownload/mozdownload/timezones.py |
=================================================================== |
--- third_party/mozdownload/mozdownload/timezones.py (revision 0) |
+++ third_party/mozdownload/mozdownload/timezones.py (revision 0) |
@@ -0,0 +1,40 @@ |
+# This Source Code Form is subject to the terms of the Mozilla Public |
+# License, v. 2.0. If a copy of the MPL was not distributed with this |
+# file, You can obtain one at http://mozilla.org/MPL/2.0/. |
+ |
+"""Module for providing specific timezones""" |
+ |
+from datetime import datetime, timedelta, tzinfo |
+ |
+ |
+class PacificTimezone(tzinfo): |
+ """Class to set the timezone to PST/PDT and automatically adjusts |
+ for daylight saving. |
+ """ |
+ |
+ def utcoffset(self, dt): |
+ return timedelta(hours=-8) + self.dst(dt) |
+ |
+ |
+ def tzname(self, dt): |
+ return "Pacific" |
+ |
+ |
+ def dst(self, dt): |
+ # Daylight saving starts on the second Sunday of March at 2AM standard |
+ dst_start_date = self.first_sunday(dt.year, 3) + timedelta(days=7) \ |
+ + timedelta(hours=2) |
+ # Daylight saving ends on the first Sunday of November at 2AM standard |
+ dst_end_date = self.first_sunday(dt.year, 11) + timedelta(hours=2) |
+ |
+ if dst_start_date <= dt.replace(tzinfo=None) < dst_end_date: |
+ return timedelta(hours=1) |
+ else: |
+ return timedelta(0) |
+ |
+ |
+ def first_sunday(self, year, month): |
+ date = datetime(year, month, 1, 0) |
+ days_until_sunday = 6 - date.weekday() |
+ |
+ return date + timedelta(days=days_until_sunday) |
Property changes on: third_party/mozdownload/mozdownload/timezones.py |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |