Судя по вашему профилю, вы в Великобритании. Это означает, что вы в настоящее время используете UTC + 1 из-за перехода на летнее время.
Если я возьму вашу временную метку и проведу ее через datetime.fromtimestamp на Python 2.6 (я знаю, что вы используете Python 3, но это то, что у меня есть), это показывает мне, что она считает, что это относится к 2010-04-04 02: 00:00 - и я в CEST, так что это UTC + 2.
Запуск datetime.fromtimestamp (0), я получаю, что эпоха 1970-01-01 01:00:00. Затем это показывает мне, что он правильно добавляет только один час (поскольку 1 января за пределами летнего времени, а эпоха - это полночь UTC этой даты, здесь будет 01:00).
Другими словами, ваша проблема в том, что вы отправляете за время, к которому применен DST, но datetime_to_timestamp обрабатывает его так, как если бы DST не существовал. timestamp_to_datetime, однако, применяет DST.
К сожалению, я не знаю достаточно Python, чтобы знать, как вы решите это, но это должно, по крайней мере, дать вам кое-что для продолжения.