Anda dapat menggunakan misalnya date --set='-2 years'untuk menyetel jam kembali dua tahun, membuat semua elemen lainnya identik. Anda dapat mengubah bulan dan hari dalam bulan dengan cara yang sama. Saya belum memeriksa apa yang terjadi jika perhitungan itu menghasilkan data yang tidak benar-benar ada, misalnya selama pergantian DST, tetapi perilaku tersebut harus identik dengan perilaku "atur tanggal dan waktu ke nilai konkret" yang biasa.
Christian Severin
Dengan asumsi Anda mencoba mengatur tanggal ke waktu saat ini, Anda dapat melakukan sudo ntpd -gqpembaruan sistem secara otomatis menggunakan layanan ntp.
Jalankan itu sebagai root atau di bawah sudo. Mengubah hanya satu tahun / bulan / hari lebih merupakan tantangan dan akan melibatkan pengulangan dari tanggal saat ini. Ada juga alat tanggal GUI yang dibangun di lingkungan desktop utama, biasanya diakses sepanjang waktu.
Untuk mengubah hanya sebagian waktu, Anda dapat menggunakan substitusi perintah di string tanggal:
date -s "2014-12-25 $(date +%H:%M:%S)"
akan mengubah tanggal, tetapi pertahankan waktu. Lihat man dateuntuk memformat rincian untuk membangun kombinasi lain: komponen individu %Y, %m, %d, %H, %M, dan %S.
Tidak ada pilihan untuk melakukan itu. Anda dapat menggunakan date -s "2014-12-25 $(date +%H:%M:%S)"untuk mengubah tanggal dan menggunakan kembali waktu saat ini.
Michael Homer
datang ke sini dan jam serta menit cocok dengan waktu saat ini. - bagus
Alex2php
2
date: cannot set date: Invalid argument
Chris Stryczynski
@MichaelHomer @SHW dimungkinkan untuk mengubah hanya tanggal dengan perintah seperti date -s 2018-01-01. Seseorang membagikan ini dalam sebuah jawaban juga: superuser.com/questions/870068/…
baptx
42
Waktu sistem
Anda dapat menggunakan dateuntuk mengatur tanggal sistem. Implementasi GNU dari date(seperti yang ditemukan pada kebanyakan sistem berbasis Linux yang tidak tertanam) menerima banyak format berbeda untuk mengatur waktu, berikut beberapa contoh:
atur hanya tahun:
date -s 'next year'
date -s 'last year'
atur hanya bulan:
date -s 'last month'
date -s 'next month'
atur hanya hari:
date -s 'next day'
date -s 'tomorrow'
date -s 'last day'
date -s 'yesterday'
date -s 'friday'
atur semuanya:
date -s '2009-02-13 11:31:30' #that's a magical timestamp
Waktu perangkat keras
Sekarang waktu sistem sudah diatur, tetapi Anda mungkin ingin menyinkronkannya dengan jam perangkat keras:
Gunakan --showuntuk mencetak waktu perangkat keras:
hwclock --show
Anda dapat mengatur jam perangkat keras ke waktu sistem saat ini:
Poin bonus untuk menggambarkan cara-cara yang tidak jelas Anda dapat mengatur tanggal dengan contoh dan untuk menunjukkan perbedaan antara "waktu sistem" dan "jam perangkat keras". Jawaban yang sangat membantu!
Mark Edington
3
Anda mengubah tanggal dengan dateperintah. Namun, perintah mengharapkan tanggal penuh sebagai argumen:
# date -s "20141022 09:45"
Wed Oct 22 09:45:00 BST 2014
Untuk mengubah bagian dari tanggal, hasilkan tanggal saat ini dengan bagian tanggal yang ingin Anda ubah sebagai string dan yang lainnya sebagai variabel format tanggal. Kemudian berikan itu ke date -sperintah untuk mengaturnya:
# date -s "$(date +'%Y12%d %H:%M')"
Mon Dec 22 10:55:03 GMT 2014
Saya mencoba mengubah tetapi tidak berubah: - $ sudo date --set = "2015-09-30 10: 05: 59.990" Rab 30 Sep 10:05:59 +0530 2015 $ date Kamis 23 Mei 15 15:10:37 +0530 2019
Vinod
2
Untuk yang seperti saya menjalankan ESXI 5.1, inilah jawaban sistem saya
~ # date -s "2016-03-23 09:56:00"
date: invalid date '2016-03-23 09:56:00'
Saya harus menggunakan perintah ESX tertentu sebagai gantinya:
esxcli system time set -y 2016 -M 03 -d 23 -H 10 -m 05 -s 00
Terima kasih atas -1, tetapi maukah Anda menjelaskan mengapa ? Jika Anda mendapat jawaban yang lebih baik / lebih lengkap / lebih tepat, jangan ragu untuk berkomentar.
Balmipour
1
Perintah untuk mengubah tanggal sistem adalah date.
date [OPTION]... [+FORMAT]
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Mudah
Cara termudah adalah menggunakan date -skarena memungkinkan penggunaan tanggal relatif sederhana
$ date -s yesterday; date
date: cannot set date: Operation not permitted
Sat Jan 5 07:21:07 EST 2019
Sun Jan 6 07:21:07 EST 2019
Tanggal tidak berubah karena dijalankan dengan pengguna terbatas $. Jika Anda benar-benar ingin tanggalnya diubah, gunakan root ( #) atau sudo:
$ sudo date -s yesterday; date
Sat Jan 5 07:21:07 EST 2019
Sat Jan 5 07:21:07 EST 2019
Jadi, mengubah bagian mana pun dari tanggal relatif semudah memberi nama:
$ date -s "5 years ago"
Mon Jan 6 08:26:26 EST 2014
$ date -s "+6 months"
Sat Jul 6 08:28:39 EDT 2019
$ date -s "+3 hours -13 minutes"
Sun Jan 6 11:16:59 AST 2019
Tanggal absolut sedikit lebih rumit karena mereka membutuhkan lebih detail:
$ date -s "2001-07-23 10:11:12"
Atau, Anda dapat menggunakan perintah tanggal dua kali:
$ date -s "$(date +'%Y-%m-%d %H:%M:%S')"
ganti salah satu %dengan nilai yang valid dan tanggal akan ditetapkan (hanya sebagai root).
$ date -s "$(date +'%Y-11-%d %H:%M:%S')"
Wed Nov 6 08:37:15 EST 2019
langsung
Bentuk tanggal panggilan kedua digunakan untuk langsung mengubah tanggal sistem.
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]
Jadi:
date 11230812 # MMDDhhmm
Akan menetapkan tanggal ke 23 November pukul 08.00 dan 12 menit.
Saya menggunakan perintah tanggal dan format waktu yang tercantum di bawah ini untuk berhasil mengatur tanggal dari perintah shell terminal yang dilakukan pada Android Things yang menggunakan Linux Kernal.
Karena ini tidak bekerja dengan baik GNU atau BSD date, dapatkah Anda menambahkan lebih banyak info tentang sistem apa ini relevan dan bagaimana itu relevan dengan pertanyaan khusus ini.
date --set='-2 years'
untuk menyetel jam kembali dua tahun, membuat semua elemen lainnya identik. Anda dapat mengubah bulan dan hari dalam bulan dengan cara yang sama. Saya belum memeriksa apa yang terjadi jika perhitungan itu menghasilkan data yang tidak benar-benar ada, misalnya selama pergantian DST, tetapi perilaku tersebut harus identik dengan perilaku "atur tanggal dan waktu ke nilai konkret" yang biasa.sudo ntpd -gq
pembaruan sistem secara otomatis menggunakan layanan ntp.Jawaban:
Gunakan
date -s
:Jalankan itu sebagai root atau di bawah
sudo
. Mengubah hanya satu tahun / bulan / hari lebih merupakan tantangan dan akan melibatkan pengulangan dari tanggal saat ini. Ada juga alat tanggal GUI yang dibangun di lingkungan desktop utama, biasanya diakses sepanjang waktu.Untuk mengubah hanya sebagian waktu, Anda dapat menggunakan substitusi perintah di string tanggal:
akan mengubah tanggal, tetapi pertahankan waktu. Lihat
man date
untuk memformat rincian untuk membangun kombinasi lain: komponen individu%Y
,%m
,%d
,%H
,%M
, dan%S
.sumber
date -s "2014-12-25 $(date +%H:%M:%S)"
untuk mengubah tanggal dan menggunakan kembali waktu saat ini.date: cannot set date: Invalid argument
date -s 2018-01-01
. Seseorang membagikan ini dalam sebuah jawaban juga: superuser.com/questions/870068/…Waktu sistem
Anda dapat menggunakan
date
untuk mengatur tanggal sistem. Implementasi GNU daridate
(seperti yang ditemukan pada kebanyakan sistem berbasis Linux yang tidak tertanam) menerima banyak format berbeda untuk mengatur waktu, berikut beberapa contoh:atur hanya tahun:
atur hanya bulan:
atur hanya hari:
atur semuanya:
Waktu perangkat keras
Sekarang waktu sistem sudah diatur, tetapi Anda mungkin ingin menyinkronkannya dengan jam perangkat keras:
Gunakan
--show
untuk mencetak waktu perangkat keras:Anda dapat mengatur jam perangkat keras ke waktu sistem saat ini:
Atau waktu sistem ke jam perangkat keras
sumber
Anda mengubah tanggal dengan
date
perintah. Namun, perintah mengharapkan tanggal penuh sebagai argumen:Untuk mengubah bagian dari tanggal, hasilkan tanggal saat ini dengan bagian tanggal yang ingin Anda ubah sebagai string dan yang lainnya sebagai variabel format tanggal. Kemudian berikan itu ke
date -s
perintah untuk mengaturnya:mengubah bulan menjadi bulan ke 12 - Desember.
Format tanggal adalah:
%Y
- Tahun%m
- Bulan%d
- Hari%H
- Jam%M
- Menitsumber
Untuk yang seperti saya menjalankan ESXI 5.1, inilah jawaban sistem saya
Saya harus menggunakan perintah ESX tertentu sebagai gantinya:
sumber
Perintah untuk mengubah tanggal sistem adalah
date
.Ada dua cara untuk memanggil perintah tanggal (di Linux):
Mudah
Cara termudah adalah menggunakan
date -s
karena memungkinkan penggunaan tanggal relatif sederhanaTanggal tidak berubah karena dijalankan dengan pengguna terbatas
$
. Jika Anda benar-benar ingin tanggalnya diubah, gunakan root (#
) atau sudo:Jadi, mengubah bagian mana pun dari tanggal relatif semudah memberi nama:
Tanggal absolut sedikit lebih rumit karena mereka membutuhkan lebih detail:
Atau, Anda dapat menggunakan perintah tanggal dua kali:
ganti salah satu
%
dengan nilai yang valid dan tanggal akan ditetapkan (hanya sebagai root).langsung
Bentuk tanggal panggilan kedua digunakan untuk langsung mengubah tanggal sistem.
Jadi:
Akan menetapkan tanggal ke 23 November pukul 08.00 dan 12 menit.
BSD memiliki perintah yang sama tetapi format yang berbeda ([[[[cc] yy] mm] dd] HH] MM [.ss]).
Coba
date
sebagai pengguna terbatas untuk melihat apa yang akan dilakukannya (tanpa mengubah apa pun):Atau, jika Anda benar-benar ingin mengubah tanggal, sebagai root:
Perhatikan bahwa layanan seperti NTP atau chrony akan terpengaruh. Dan, jika restart akan mengatur ulang tanggal kembali ke yang asli.
Tambahkan YY untuk mengatur tahun:
Atau CCYY untuk menetapkan tahun dan abad:
sumber
Saya menggunakan perintah tanggal dan format waktu yang tercantum di bawah ini untuk berhasil mengatur tanggal dari perintah shell terminal yang dilakukan pada Android Things yang menggunakan Linux Kernal.
tanggal 092615002017.00
MMDDHHMMYYYY.SS
MM - Bulan - 09
DD - Hari - 26
HH - Jam - 15
MM - Min - 00
YYYY - Tahun - 2017
.SS - detik - 00
sumber
date
, dapatkah Anda menambahkan lebih banyak info tentang sistem apa ini relevan dan bagaimana itu relevan dengan pertanyaan khusus ini.