1、代码仓库
git clone github.com/wolfcw/libf…
2、安装
make && make install
3、测试
测试 一:
(1) echo '@2033-12-24 08:15:42' > /tmp/my-faketime.rc
(2) LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1 \
FAKETIME_TIMESTAMP_FILE=/tmp/my-faketime.rc \
FAKETIME_DONT_RESET=1 \
bash -c 'while true ; do date ; sleep 1 ; done'
(3) 测试效果
[root@iZbp1bh3oeew2koe4ntrpyZ ~]# echo '@2033-12-24 08:15:42' > /tmp/my-faketime.rc
[root@iZbp1bh3oeew2koe4ntrpyZ ~]# LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1 \
> FAKETIME_TIMESTAMP_FILE=/tmp/my-faketime.rc \
> FAKETIME_DONT_RESET=1 \
> bash -c 'while true ; do date ; sleep 1 ; done'
Sat Dec 24 08:15:42 CST 2033
Sat Dec 24 08:15:43 CST 2033
Sat Dec 24 08:15:44 CST 2033
Sat Dec 24 08:15:45 CST 2033
Sat Dec 24 08:15:46 CST 2033
Sat Dec 24 08:15:47 CST 2033
^C
[root@iZbp1bh3oeew2koe4ntrpyZ ~]#
测试二:
(1) 代码片段
log.info("TimeTester Application started");
new Thread(() -> {
while (true) {
log.info("LocalDateTime.now():{}", LocalDateTime.now());
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
log.info("new Date():{}", sdf.format(new Date()));
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
(2)执行命令
[root@iZbp1bh3oeew2koe4ntrpyZ home]# LD_PRELOAD=/usr/local/lib/faketime/libfaketime.so.1 FAKETIME_TIMESTAMP_FILE=/tmp/my-faketime.rc FAKETIME_DONT_RESET=1 java -jar time-tester-0.0.1-SNAPSHOT.jar
08:15:42.485 [main] INFO com.example.time.tester.TimeTesterApplication -- TimeTester Application started
08:15:42.543 [Thread-0] INFO com.example.time.tester.TimeTesterApplication -- LocalDateTime.now():2033-12-24T08:15:42.543623945
08:15:42.660 [Thread-0] INFO com.example.time.tester.TimeTesterApplication -- new Date():2033-12-24 08:15:42
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v3.2.4)
(3)执行结果
2033-12-24T08:15:45.391+08:00 INFO 2907 --- [time-tester] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1626 ms
2033-12-24T08:15:45.662+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : LocalDateTime.now():2033-12-24T08:15:45.662959328
2033-12-24T08:15:45.663+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : new Date():2033-12-24 08:15:45
2033-12-24T08:15:45.988+08:00 INFO 2907 --- [time-tester] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path ''
2033-12-24T08:15:46.017+08:00 INFO 2907 --- [time-tester] [ main] c.e.time.tester.TimeTesterApplication : Started TimeTesterApplication in 3.225 seconds (process running for 4.015)
2033-12-24T08:15:46.663+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : LocalDateTime.now():2033-12-24T08:15:46.663877422
2033-12-24T08:15:46.664+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : new Date():2033-12-24 08:15:46
2033-12-24T08:15:47.664+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : LocalDateTime.now():2033-12-24T08:15:47.664875252
2033-12-24T08:15:47.665+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : new Date():2033-12-24 08:15:47
2033-12-24T08:15:48.665+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : LocalDateTime.now():2033-12-24T08:15:48.665694340
2033-12-24T08:15:48.666+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : new Date():2033-12-24 08:15:48
2033-12-24T08:15:49.666+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : LocalDateTime.now():2033-12-24T08:15:49.666700045
2033-12-24T08:15:49.667+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : new Date():2033-12-24 08:15:49
2033-12-24T08:15:50.667+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : LocalDateTime.now():2033-12-24T08:15:50.667601400
2033-12-24T08:15:50.668+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : new Date():2033-12-24 08:15:50
2033-12-24T08:15:51.668+08:00 INFO 2907 --- [time-tester] [ Thread-0] c.e.time.tester.TimeTesterApplication : LocalDateTime.now():2033-12-24T08:15:51.668467318