Date manpage'den yanlış ayrıştırma komutu?


1

Elmanın içinde tarih manpage (manpage) $ man date ) yazılmış:

Finally the command:

     `date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s"

can be used to parse the output from date and express it in Epoch time.

Ancak bu komutu çalıştırırken ( $ date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s" ) Terminal'den yeni bir Temel Kabukta:

Failed conversion of ``Ven 12 mai 2017 08:22:03 CEST'' using format ``%a %b %d %T %Z %Y''
date: illegal time format
usage: date [-jnRu] [-d dst] [-r seconds] [-t west] [-v[+|-]val[ymwdHMS]] ... 
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]

Niye ya? Senin için aynı mı? Nasıl düzeltebilirim?

Not: Fransızca ayarlarında ve Paris yerel saatinde MacOS Sierra 10.12.4'tayım (UTC +02: 00)


1
Yerel bir sorun gibi görünüyor. İle komutu tercih ettiğinizde ne olur? LC_ALL=C?
fd0

2
@ fd0 Bunu bir cevap olarak ekleyebileceğinizi düşünüyorum. OP ile aynı çıktıyı aldım, ancak LC_ALL beklendiği gibi çalışır.
Mateusz Szlosek

@ fd0 Başlattıktan sonra LC_ALL=C date emir çalışıyor! Bir cevap gibi görünüyor… Benim durumumda eski ortama geri dönmek için: LC_ALL=fr_FR
Klemart3D

Yanıtlar:


1

Aşağıdaki tarih biçimini kullanıyorsunuz:

 %a %d  %b   %Y %H:%M:%S   %Z
Ven 12 mai 2017 08:22:03 CEST

Yani doğru komut

date -j -f "%a %d %b %Y %H:%M:%S %Z" "`date`" "+%s"

1
%T ayrıca yerine çalışır %H:%M:%S
Mateusz Szlosek

Benim için çalışıyor: $ LC_ALL=fr_FR $ date Ven 12 mai 2017 11:50:00 CEST $ date -j -f "%a %d %b %Y %H:%M:%S %Z" "`date`" "+%s" 1494582685
Klemart3D
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.