Alat yang Anda cari adalah faketime
.
faketime 'yesterday 9am' /bin/date
faketime '2018-10-25 16:45' /bin/date
Dimungkinkan untuk menggunakan nama zona waktu yang tidak ada dan menyetel waktu hingga +- 24 jam. Dengan asumsi bahwa MYFAKETIME
tidak ada sebagai zona waktu yang valid (belum ada, tetapi dapat ditentukan di masa mendatang (sangat tidak mungkin)), maka, ini mungkin:
[email protected]:~$ date
Sun Sep 30 01:22:05 EST 2018
[email protected]:~$ TZ=MYFAKETIME date
Sun Sep 30 06:22:43 MYFAKETIME 2018
[email protected]:~$ TZ=MYFAKETIME+1 date
Sun Sep 30 05:22:56 MYFAKETIME 2018
[email protected]:~$ TZ=MYFAKETIME+10 date
Sat Sep 29 20:23:00 MYFAKETIME 2018
[email protected]:~$ TZ=MYFAKETIME+20 date
Sat Sep 29 10:23:05 MYFAKETIME 2018
[email protected]:~$ TZ=MYFAKETIME+24 date
Sat Sep 29 06:23:08 MYFAKETIME 2018
[email protected]:~$ TZ=MYFAKETIME+48 date
Sat Sep 29 06:23:14 MYFAKETIME 2018
[email protected]:~$ TZ=MYFAKETIME+96 date
Sat Sep 29 06:23:25 MYFAKETIME 2018
[email protected]:~$
Perhatikan bahwa zona waktu di atas 24 tidak berfungsi. Mereka tidak mengubah waktu tetapi terbatas pada kisaran -24
ke +24
. Dari 21.4.7 Menentukan Zona Waktu dengan TZ
Format pertama digunakan saat tidak ada Daylight Saving Time (atau waktu musim panas) di zona waktu lokal:
std offset
String std menentukan nama zona waktu. Itu harus tiga karakter atau lebih panjang dan tidak boleh mengandung titik dua di depan, angka yang disematkan, koma, atau tanda plus dan minus. Tidak ada karakter spasi yang memisahkan nama zona waktu dari offset, jadi batasan ini diperlukan untuk mengurai spesifikasi dengan benar.
Offset menentukan nilai waktu yang harus Anda tambahkan ke waktu lokal untuk mendapatkan nilai Waktu Universal Terkoordinasi. Ini memiliki sintaks seperti [+|-]hh[:mm[:ss]]. Ini positif jika zona waktu lokal berada di sebelah barat Meridian Utama dan negatif jika berada di timur. Jam harus antara 0 dan 24 , serta menit dan detik antara 0 dan 59.
Jadi, tidak ada cara untuk mengubah waktu menjadi "hari ke depan" menggunakan variabel TZ.
Solusi sebenarnya adalah dengan menggunakan faketime
utilitas (dari paket dengan nama yang sama).
Itu akan memungkinkan Anda untuk melakukan:
[email protected]:~$ faketime '2008-12-24 08:15:42' /bin/date
Wed Dec 24 08:15:42 EST 2008
[email protected]:~$ date
Sun Sep 30 01:44:29 EST 2018
Cukup atur TZ
variabel. Nilai positif mengarah ke Timur, begitu juga di belakang GMT.
misalnya
$ TZ=GMT date
Sat Sep 29 19:12:30 GMT 2018
$ TZ=FAKEEAST+15 date
Sat Sep 29 04:12:36 FAKEEAST 2018
$ TZ=FAKEWEST-15 date
Sun Sep 30 10:12:41 FAKEWEST 2018
Ini hanya akan membiarkan Anda pergi +/- 24 jam.