datefudge man page

datefudge — pretend the system time is different


datefudge [-s|--static] at_date program [arguments ...]


datefudge is a small utility that pretends that the system time is different by pre-loading a small library which modifies the time(2), gettimeofday(2) and clock_gettime(2) system calls.

Date Format

The at_date argument can be given in any format accepted by the date(1) program, for example "2007-04-01 12:21" or "yesterday", or "next Friday".


--static, -s
Mark the date as a `static' one. The above mentioned system calls will always return the date given in the at_date argument, regardless of time passing. See Examples
--help, -h
Print short usage information and exit.
--version, -v
Print version information and exit.


Basic examples

$ datefudge "2007-04-01 10:23" date -R
Sun, 01 Apr 2007 10:23:00 +0200

$ datefudge "1 May 2007" date -R
Tue, 01 May 2007 00:00:00 +0200

$ datefudge "2 weeks ago" date -R
Wed, 16 Jan 2008 13:32:12 +0100

Non-static vs. static example

$ datefudge "2007-04-01 10:23" sh -c "sleep 3; date -R"
Sun, 01 Apr 2007 10:23:03 +0200

$ datefudge --static "2007-04-01 10:23" sh -c "sleep 3; date -R"
Sun, 01 Apr 2007 10:23:00 +0200


Written by Matthias Urlichs <smurf@noris.de>. Modified by Robert Luberda <robert@debian.org>.


There is no attempt to make this change undetectable by the program. In particular, file modification times are not modified.

See Also

date(1), ld.so(1), time(2), gettimeofday(2), clock_gettime(2)


Explore man page connections for datefudge(1).