def epoch_to_datetime(self, epoch):
    '\n        Converts a CDF epoch value to a datetime\n\n        Parameters\n        ==========\n        epoch : float\n            epoch value from CDF\n\n        Returns\n        =======\n        out : :class:`datetime.datetime`\n            date and time corresponding to epoch. Invalid values are set to\n            usual epoch invalid value, i.e. last moment of year 9999.\n\n        See Also\n        ========\n        v_epoch_to_datetime\n        '
    yyyy = ctypes.c_long(0)
    mm = ctypes.c_long(0)
    dd = ctypes.c_long(0)
    hh = ctypes.c_long(0)
    min = ctypes.c_long(0)
    sec = ctypes.c_long(0)
    msec = ctypes.c_long(0)
    self._library.EPOCHbreakdown(ctypes.c_double(epoch), ctypes.byref(yyyy), ctypes.byref(mm), ctypes.byref(dd), ctypes.byref(hh), ctypes.byref(min), ctypes.byref(sec), ctypes.byref(msec))
    if (yyyy.value <= 0):
        return datetime.datetime(9999, 12, 13, 23, 59, 59, 999000)
    else:
        return datetime.datetime(yyyy.value, mm.value, dd.value, hh.value, min.value, sec.value, (msec.value * 1000))
Converts a CDF epoch value to a datetime

Parameters
==========
epoch : float
    epoch value from CDF

Returns
=======
out : :class:`datetime.datetime`
    date and time corresponding to epoch. Invalid values are set to
    usual epoch invalid value, i.e. last moment of year 9999.

See Also
========
v_epoch_to_datetime
def epoch_to_datetime(self, epoch):
    '\n        Converts a CDF epoch value to a datetime\n\n        Parameters\n        ==========\n        epoch : float\n            epoch value from CDF\n\n        Returns\n        =======\n        out : :class:`datetime.datetime`\n            date and time corresponding to epoch. Invalid values are set to\n            usual epoch invalid value, i.e. last moment of year 9999.\n\n        See Also\n        ========\n        v_epoch_to_datetime\n        '
    yyyy = ctypes.c_long(0)
    mm = ctypes.c_long(0)
    dd = ctypes.c_long(0)
    hh = ctypes.c_long(0)
    min = ctypes.c_long(0)
    sec = ctypes.c_long(0)
    msec = ctypes.c_long(0)
    self._library.EPOCHbreakdown(ctypes.c_double(epoch), ctypes.byref(yyyy), ctypes.byref(mm), ctypes.byref(dd), ctypes.byref(hh), ctypes.byref(min), ctypes.byref(sec), ctypes.byref(msec))
    if (yyyy.value <= 0):
        return datetime.datetime(9999, 12, 13, 23, 59, 59, 999000)
    else:
        return datetime.datetime(yyyy.value, mm.value, dd.value, hh.value, min.value, sec.value, (msec.value * 1000))