包括正负小数等
def convert_to_time(value):
if value >= 0:
days = np.floor(value)
time_fraction = value - days
hours = np.floor(time_fraction * 24)
minutes = np.floor((time_fraction * 24 * 60) - (hours * 60))
seconds = np.floor((time_fraction * 24 * 60 * 60) - (hours * 60 * 60) - (minutes * 60))
delta = datetime.timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)
datetime_obj = datetime.datetime(1, 3, 1) + delta
else:
value = np.abs(value)
days = np.floor(value)
time_fraction = value - days
hours = np.floor(time_fraction * 24)
minutes = np.floor((time_fraction * 24 * 60) - (hours * 60))
seconds = np.floor((time_fraction * 24 * 60 * 60) - (hours * 60 * 60) - (minutes * 60))
delta = datetime.timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)
day_n = int(days) if days != 0 else int(days) + 1
datetime_obj = datetime.datetime(1, 3, 1) - delta
return datetime_obj