The date
perintah tidak menawarkan hal seperti itu, yang merupakan jenis sedih karena RFC-3339 adalah modern, luas, format waras digunakan di mana-mana (kecuali dalam email yang modern maupun waras).
Offset zona waktu saya saat ini -08: 00 sehingga bentuk paling sederhana dari perintah ini harus mencetak waktu saat ini sebagai 2013-09-05T14:58:33.102-08:00
.
2013-09-05 14:58:33.102 -0800
kecuali ketika ada beberapa alasan mengapa spasi tidak boleh digunakan sama sekali.Jawaban:
Sepertinya Anda dapat melakukan beberapa format menggunakan saklar ke implementasi GNU
date
(versi 5.90 atau lebih tinggi)--rfc3339=
,.Contohnya
Jika Anda ingin
T
ditambahkan, sebagai peretasan:Jika Anda menginginkannya dalam milidetik:
Referensi
sumber
--iso-8601' option accepts the same arguments as
--rfc-3339`, dan termasuk 'T' dalam output.s/\(\....\).*-/\1-/g
seharusnyas/\(\....\).*\([+-]\)/\1\2/g
juga bekerja di timur Atlantik.NOTE: ISO 8601 defines date and time separated by "T".
Sementara RFC3339 memungkinkan Anda untuk menggunakan spasi. Baca ietf.org/rfc/rfc3339.txt Bagian 5.6Dengan GNU
date
(5,90 atau lebih tinggi):Ganti
%N
dengan%3N
selama milidetik,%6N
selama mikro-detik ...AFAIK, tidak satu pun dari spesifikasi POSIX, Unix atau LSB yang menentukan perintah apa pun yang dapat menampilkan waktu dengan granularity sub-detik, tetapi bagian fraksional adalah opsional dalam RFC 3339.
POSIX / Unix / LSB strftime mendukung
%z
untuk menampilkan TZ offset-0800
, sehingga yang paling portabel yang mungkin Anda dapatkan adalah:sumber
GNU
date
memiliki format ISO-8601 bawaan - bukankah itu cukup dekat atau bahkan identik dengan RFC-3339?sumber
Bagaimana dengan yang baik:
sumber
0200
kehilangan titik dua, yang dapat merusak beberapa sistem yang membutuhkannya.time-numoffset
di tools.ietf.org/html/rfc3339#s-5-5 .Anda juga dapat memformat waktu sesuai dengan RFC3339 (ISO8601) lebih mudah:
CATATAN: Format ini juga digunakan dalam Label Schema Convention RC 1.0
sumber
-u
benderanya, jawaban ini benar, bukan?Perintah-perintah ini kompatibel dengan POSIX, dengan pengecualian
%z
spesifikasi konversi. Namun,%z
secara luas didukung dan bekerja dengan cara yang sama di Linux, MacOS, FreeBSD, OpenBSD, NetBSD, DragonFlyBSD, Solaris, Minix dan Haiku. Ini juga bekerja dengan alat-alat di Busybox, Toybox dan sbase (utilitas sistem dasar suckless.org). Karena%z
menampilkan offset zona waktu dalam±HHMM
format, kami membutuhkansed
pipa untuk menambahkan titik dua dan mengubahnya±HH:MM
.CATATAN: Perintah proyek Heirloom
date
memiliki%z
keluaran yang tidak kompatibel : tidak mencetak+
tanda.sumber