47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			47 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | # encoding: utf-8 | ||
|  | """
 | ||
|  | Timezone utilities | ||
|  | 
 | ||
|  | Just UTC-awareness right now | ||
|  | """
 | ||
|  | 
 | ||
|  | #----------------------------------------------------------------------------- | ||
|  | #  Copyright (C) 2013 The yap_ipython Development Team | ||
|  | # | ||
|  | #  Distributed under the terms of the BSD License.  The full license is in | ||
|  | #  the file COPYING, distributed as part of this software. | ||
|  | #----------------------------------------------------------------------------- | ||
|  | 
 | ||
|  | #----------------------------------------------------------------------------- | ||
|  | # Imports | ||
|  | #----------------------------------------------------------------------------- | ||
|  | 
 | ||
|  | from datetime import tzinfo, timedelta, datetime | ||
|  | 
 | ||
|  | #----------------------------------------------------------------------------- | ||
|  | # Code | ||
|  | #----------------------------------------------------------------------------- | ||
|  | # constant for zero offset | ||
|  | ZERO = timedelta(0) | ||
|  | 
 | ||
|  | class tzUTC(tzinfo): | ||
|  |     """tzinfo object for UTC (zero offset)""" | ||
|  | 
 | ||
|  |     def utcoffset(self, d): | ||
|  |         return ZERO | ||
|  | 
 | ||
|  |     def dst(self, d): | ||
|  |         return ZERO | ||
|  | 
 | ||
|  | UTC = tzUTC() | ||
|  | 
 | ||
|  | def utc_aware(unaware): | ||
|  |     """decorator for adding UTC tzinfo to datetime's utcfoo methods""" | ||
|  |     def utc_method(*args, **kwargs): | ||
|  |         dt = unaware(*args, **kwargs) | ||
|  |         return dt.replace(tzinfo=UTC) | ||
|  |     return utc_method | ||
|  | 
 | ||
|  | utcfromtimestamp = utc_aware(datetime.utcfromtimestamp) | ||
|  | utcnow = utc_aware(datetime.utcnow) |