'Returns a datetime.datetime object if cell type is XL_CELL_DATE
else raises a TypeError, and raises ValueError if the the cell has
not date value (only time value is present).'

def datetime(self):

    if self.is_datetime:
        if self.has_date:
            date = xldate_as_tuple(self.value, self.book.datemode)
            return datetime.datetime(*date)
        else:
            raise ValueError('Cell    has    no    date    value.')
    else:
        raise TypeError('Cell    is    not    a    XL_CELL_DATE.')
