[python-nl] mx.DateTime naar datetime en vice versa
rr at nederhoed.com
rr at nederhoed.com
Wed Apr 12 15:27:42 CEST 2006
Ik ben een stapje verder. Met behulp van
http://docs.python.org/lib/datetime-tzinfo.html
http://www.egenix.com/files/python/mxDateTime.html
Ik ben blij met de oplossing, maar van de netheid ben ik nog niet zo zeker.
Voor wie het interesseert, de code volgt hieronder.
Groeten uit een zonnig Den Haag, Robert-Reinder
# Imports
import datetime
import mx.DateTime
# Voor tz info
ZERO = datetime.timedelta(0)
class UTC(datetime.tzinfo):
"""UTC implementatie van abstracte klasse tz_info
Zie http://docs.python.org/lib/datetime-tzinfo.html
"""
def utcoffset(self, dt):
"UTC timezonde offset is 0"
return ZERO
def tzname(self, dt):
"Naam van de timezone: UTC "
return "UTC"
def dst(self, dt):
"Geen Daylight Savings Time "
return ZERO
#
tz_utc = UTC()
def datetime_from_mx(datum):
"""Geeft de python.datetime terug voor de gegeven mx.DateTime
datum.gmticks() geeft het aantal seconden sinds 1970-01-01 00:00 UTC
Vandaar dat we de UTC Timezone Information (tz_utc) meegeven bij het
terugvertalen naar een datetime type met 'fromtimestamp'
De replace(tzinfo=None) maakt expliciet dat we met een local datetime
werken
"""
return datetime.datetime.fromtimestamp(datum.gmticks(),
tz=tz_utc).replace(tzinfo=None)
def mx_from_datetime(datum):
"""Geeft de python.datetime terug voor de gegeven mx.DateTime
TODO: netter
Deze geeft de argumenten 1 voor 1 door
"""
return mx.DateTime.DateTime(*datum.timetuple()[:6])
--
R.R. Nederhoed (rr at nederhoed.com)
More information about the Python-nl
mailing list