Mercurial > babel > mirror
comparison babel/util.py @ 95:f9007588a860 trunk
Fix for #11 (use local timezone in timestamps of generated POT).
author | cmlenz |
---|---|
date | Tue, 12 Jun 2007 18:40:39 +0000 |
parents | 2df27f49c320 |
children | 4e5c9dc57f1d |
comparison
equal
deleted
inserted
replaced
94:96037779b518 | 95:f9007588a860 |
---|---|
14 """Various utility classes and functions.""" | 14 """Various utility classes and functions.""" |
15 | 15 |
16 from datetime import timedelta, tzinfo | 16 from datetime import timedelta, tzinfo |
17 import os | 17 import os |
18 import re | 18 import re |
19 | 19 import time |
20 __all__ = ['pathmatch', 'relpath', 'UTC'] | 20 |
21 __all__ = ['pathmatch', 'relpath', 'UTC', 'LOCAL'] | |
21 __docformat__ = 'restructuredtext en' | 22 __docformat__ = 'restructuredtext en' |
22 | 23 |
23 def pathmatch(pattern, filename): | 24 def pathmatch(pattern, filename): |
24 """Extended pathname pattern matching. | 25 """Extended pathname pattern matching. |
25 | 26 |
167 UTC = UTC() | 168 UTC = UTC() |
168 """`tzinfo` object for UTC (Universal Time). | 169 """`tzinfo` object for UTC (Universal Time). |
169 | 170 |
170 :type: `tzinfo` | 171 :type: `tzinfo` |
171 """ | 172 """ |
173 | |
174 STDOFFSET = timedelta(seconds = -time.timezone) | |
175 if time.daylight: | |
176 DSTOFFSET = timedelta(seconds = -time.altzone) | |
177 else: | |
178 DSTOFFSET = STDOFFSET | |
179 | |
180 DSTDIFF = DSTOFFSET - STDOFFSET | |
181 | |
182 class LocalTimezone(tzinfo): | |
183 | |
184 def utcoffset(self, dt): | |
185 if self._isdst(dt): | |
186 return DSTOFFSET | |
187 else: | |
188 return STDOFFSET | |
189 | |
190 def dst(self, dt): | |
191 if self._isdst(dt): | |
192 return DSTDIFF | |
193 else: | |
194 return ZERO | |
195 | |
196 def tzname(self, dt): | |
197 return time.tzname[self._isdst(dt)] | |
198 | |
199 def _isdst(self, dt): | |
200 tt = (dt.year, dt.month, dt.day, | |
201 dt.hour, dt.minute, dt.second, | |
202 dt.weekday(), 0, -1) | |
203 stamp = time.mktime(tt) | |
204 tt = time.localtime(stamp) | |
205 return tt.tm_isdst > 0 | |
206 | |
207 LOCAL = LocalTimezone() |