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()
Copyright (C) 2012-2017 Edgewall Software