Шаблон нулевого объекта не для того, что вы пытаетесь сделать. Этот шаблон предназначен для создания объекта без функциональности в его реализации, который вы можете передать данной функции, которая требует, чтобы объект не был нулевым. Примером является NullProgressMonitor в Eclipse, который является пустой реализацией IProgressMonitor .
Если вы вернете «нулевую» дату, например, 1970, ваши клиенты все равно должны будут проверить, является ли она «нулевой», увидев, что это 1970. А если нет, произойдет неправильное поведение. Однако, если вы вернете ноль, их код быстро потерпит неудачу, и они будут знать, что они должны проверить на ноль. Кроме того, 1970 может быть действительной датой.
Вы должны документально подтвердить, что ваш метод может возвращать ноль, и все.