compare these commands: $ date -u -d '31 mar 2001 utc + 86400 seconds' Sun Apr 1 00:00:00 UTC 2001 $ date -u -d '1 apr 2001 utc + 86400 seconds' Mon Apr 2 01:00:00 UTC 2001 $ date -u -d '2 apr 2001 utc + 86400 seconds' Tue Apr 3 00:00:00 UTC 2001 the second one is wrong by an hour. any date calculation that crosses some time in 1 apr 2001 is wrong by an hour. another way this problem manifests, compare: $ date Sun Apr 15 02:12:03 PDT 2001 $ date -d "1 jan 1970 utc + $(date +%s) seconds" Sun Apr 15 03:12:09 PDT 2001 the two should be almost the same, but the second one is one hour in the future.
Works in the current release (sh-utils-2.0-13, installing just that package on a 7.0 system should do).