Provided by: datefudge_1.23_amd64 bug

NAME

       datefudge - pretend the system time is different

SYNOPSIS

       datefudge [-s|--static] [-l|--add-ld-preload lib] at_date program [arguments ...]

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.

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

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.  See
              EXAMPLES below.

       --add-ld-preload lib, -l lib
              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.

EXAMPLES

   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

   Prepending LD_PRELOAD example:
       $ datefudge --add-ld-preload /path/to/libclang_rt.asan-x86_64.so "2007-04-01 10: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.

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.

       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=UTC datefudge "2038-01-19 03:14:07" sh -c "sleep 1; date -R"
       Fri Dec 13 20:45:53 UTC 1901

COPYRIGHT

       Copyright © 2003 by Matthias Urlichs.
       Copyright © 2008-2019 by Robert Luberda.

       There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR  PURPOSE.
       You  may  redistribute  copies  of  datefudge  under  the  terms of the GNU General Public
       License.
       For more information about these matters, see the file named COPYING.

SEE ALSO

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