OffsetDateTime считается более точным, чем ZonedDateTime, потому что он хранит все поля даты и времени с точностью до наносекунд, а также смещение от GMT/UTC (без информации о временной зоне). 3
ZonedDateTime, в свою очередь, можно воспринимать как комбинацию трёх составляющих: момента времени, смещения и правил вычисления времени, которые отвечают в основном за переход на зимнее и летнее время. 1
При этом OffsetDateTime не может производить полностью корректные сдвиги, поскольку не знает о будущих и прошлых переводах стрелок. 2 ZonedDateTime лучше использовать, если есть способ выяснить полноценную временную зону пользователя. 2