logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

datefudge - pretend the system time is different

Author

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

Bugs

       There  is  no  attempt to make this change undetectable by the program.  In particular, file modification
       times are not modified.  (Note that such  a  functionality  might  be  provided  by  faketime(1)  program
       available in libfaketime Debian package.)

       On  systems  using  32-bit  representation of time, datefudge is affected by the year 2038 problem, which
       might cause dates to be wrapped around, for instance:
       $TZ=UTCdatefudge"2038-01-1903:14:07"sh-c"sleep1;date-R"
       Fri Dec 13 20:45:53 UTC 1901

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".

Description

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.

Examples

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

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

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

   Non-staticvs.staticexample:$datefudge"2007-04-0110:23"sh-c"sleep3;date-R"
       Sun, 01 Apr 2007 10:23:03 +0200

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

   Non-staticwithsub-secondsexample:$datefudge--static"2007-04-0110:23:45.123456"date+"%F%T%N"
       2007-04-01 10:23:45 000000000PrependingLD_PRELOADexample:$datefudge--add-ld-preload/path/to/libclang_rt.asan-x86_64.so"2007-04-0110:23"command

       If the command was compiled by 'clang -fsanitize=address -shared-libasan', then the above
       command might display some errors, for example:

       ==7625==ERROR: AddressSanitizer: heap-use-after-free on address 0x614000000044 at pc ....

       Without the --add-ld-preload argument, this would not work at all.

Name

       datefudge - pretend the system time is different

Options

--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.  Please note that sub-seconds  part  of
              the returned date is always set to 0. See EXAMPLES below.

       --add-ld-preloadlib, -llib
              Prepend  lib to LD_PRELOAD environment variable before executing given program.  This option might
              be useful for example to inject sanitizer libraries (e.g. from Address Sanitizer) to the  list  of
              preloaded libraries before the internal datefudge's library.  See EXAMPLES below.

       --help, -h
              Print short usage information and exit.

       --version, -v
              Print version information and exit.

See Also

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

datefudge 1.27                                 January 13th, 2024                                   DATEFUDGE(1)

Synopsis

datefudge [-s|--static] [-l|--add-ld-preloadlib] at_dateprogram [arguments ...]

See Also