[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