Bagaimana cara mengubah string tanggal ke zona waktu saat ini di baris perintah?

11

Bagaimana saya bisa mengonversi string tanggal / waktu, misalnya 2011-11-13 08:11:02 +0000, ke zona waktu lokal saya di baris perintah?

Daniel Beck
sumber
Jangan ragu untuk menambahkan jawaban yang berbeda, tetapi harap diingat bahwa OS X memiliki BSD date, bukan GNU date. Pilihannya sangat berbeda.
Daniel Beck

Jawaban:

17

Gunakan date -jf "<input format>" "<input value>" +"<output format>".

Yang berikut mengonversi tanggal UTC ke zona waktu lokal saya (CET):

$ date -jf "%Y-%m-%d %H:%M:%S %z" "2011-11-13 08:11:02 +0000" +"%Y_%m_%d__%H_%M_%S"
2011_11_13__09_11_02

Jika Anda menentukan format tanggal yang sama untuk input dan output, Anda hanya akan mengonversi waktu ke zona waktu lokal Anda. Tetapi, seperti dalam contoh, Anda dapat menggabungkannya dengan konversi format.

Daniel Beck
sumber
2
Zona waktu target dapat diubah dengan mengatur sementara $TZ: TZ=EST date -jf %H%z 23+0100 +%I%p05PM
Lri