Menampilkan tanggal dan waktu saat ini tanpa tanda baca


118

Misalnya, saya ingin menampilkan tanggal dan waktu sekarang sebagai format berikut:

yyyymmddhhmmss 

Bagaimana aku melakukan itu? Tampaknya seperti kebanyakan format tanggal dilengkapi dengan -, /, :, dll

Jawaban:


170

Ini dia:

date +%Y%m%d%H%M%S

Seperti yang man datedikatakan di dekat bagian atas, Anda dapat menggunakan dateperintah seperti ini:

date [OPTION]... [+FORMAT]

Artinya, Anda dapat memberinya parameter format, dimulai dengan a +. Anda mungkin bisa menebak arti simbol format yang saya gunakan:

  • %Y adalah untuk tahun
  • %m adalah untuk bulan
  • %d untuk hari ini
  • ... dan seterusnya

Anda dapat menemukan ini, dan simbol pemformatan lainnya di man date.


36

Contoh sederhana dalam skrip shell

#!/bin/bash

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

Tanpa format tanda baca: - +% Y% m% d% H% M% S
Dengan tanda baca: - +% Y-% m-% d% H:% M:% S


2
"`date +%Y-%m-%d %H:%M:%S`"memberi sayadate: illegal time format
Sinux

6

Jika Anda menggunakan Bash, Anda juga dapat menggunakan salah satu dari perintah berikut:

printf '%(%Y%m%d%H%M%S)T'       # prints the current time
printf '%(%Y%m%d%H%M%S)T' -1    # same as above
printf '%(%Y%m%d%H%M%S)T' -2    # prints the time the shell was invoked

Anda dapat menggunakan Option -v varnameuntuk menyimpan hasil $varnamedaripada mencetaknya ke stdout:

printf -v varname '%(%Y%m%d%H%M%S)T'

Sementara perintah tanggal akan selalu dijalankan dalam subkulit (yaitu dalam proses terpisah) printf adalah perintah bawaan dan oleh karena itu akan lebih cepat.


Bagi siapa pun yang mencari dokumentasi lebih lanjut tentang %opsi apa yang dapat Anda berikan, ini tampaknya menggunakan dateperintah. Jadi, man dateakan memberi Anda opsi yang tersedia.
electrovir

4

Tanpa tanda baca (seperti yang disebutkan @Burusothman):

current_date_time="`date +%Y%m%d%H%M%S`";
echo $current_date_time;

O / P:

20170115072120

Dengan tanda baca :

current_date_time="`date "+%Y-%m-%d %H:%M:%S"`";
echo $current_date_time;

O / P:

2017-01-15 07:25:33

0

Cara menarik / lucu untuk melakukan ini menggunakan ekspansi parameter (memerlukan bash 4.4atau lebih baru):

${parameter@operator} - P operator

Perluasan adalah string yang merupakan hasil perluasan nilai parameter seolah-olah itu adalah string prompt.

$ show_time() { local format='\D{%Y%m%d%H%M%S}'; echo "${format@P}"; }
$ show_time
20180724003251
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.