Чтобы ответить на ваш вопрос в точных выражениях:
import datetime
import pytz
tz = pytz.timezone('Europe/Amsterdam')
d = datetime.datetime.utcfromtimestamp(1478084255).replace(tzinfo = pytz.utc)
d = d.astimezone(tz).replace(tzinfo = pytz.utc)
f = datetime.datetime.combine(d.date(), datetime.time()).replace(tzinfo=pytz.utc)
(d-f).total_seconds() / (60* 60* 24) # 0.498321759
Сказав это, я думаю, что вы рассчитываете не то, что вы думаете, что вы рассчитываете.Кажется, что datenum в matlab полностью игнорирует часть '1004 * объекта timezone, что, как я подозреваю, может оказаться не тем, что вы намеревались.Вы можете проверить вышеизложенное в этом случае, подтвердив, что datenum(d)
дает тот же результат, что и datenum(datevec(d))
.
Возможно, стоило бы явно спросить, что вы ожидаете Выйдите из этого вычисления в словах, просто чтобы убедиться, что он действительно соответствует коду, который вы предоставили.Что вы пытаетесь сделать именно?