Lệnh phân tích sai từ manpage ngày?


1

Trong trang web ngày của Apple ( $ man date) nó được viết:

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.

Nhưng khi tôi thực hiện lệnh này ( $ date -j -f "%a %b %d %T %Z %Y" "`date`" "+%s") trong Shell cơ bản mới từ Terminal, tôi nhận được:

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]

Tại sao? Nó có giống với bạn không? Làm thế nào tôi có thể sửa nó?

Lưu ý: Tôi đang sử dụng macOS Sierra 10.12.4 với cài đặt của Pháp và giờ địa phương Paris (UTC +02: 00)


1
Có vẻ là một vấn đề địa phương. Điều gì xảy ra khi bạn thích lệnh với LC_ALL=C?
fd0

2
@ fd0 Tôi nghĩ bạn có thể thêm điều này như một câu trả lời. Tôi đã có cùng một đầu ra như OP, nhưng sau khi thiết lập LC_ALLnó hoạt động như mong đợi.
Mateusz Szlosek

@ fd0 Sau khi tung ra LC_ALL=Ccác datetác phẩm lệnh! Có vẻ như là một câu trả lời trong trường hợp của tôi, để quay lại cài đặt cũ:LC_ALL=fr_FR
Klemart3D

Câu trả lời:


1

Bạn đang sử dụng định dạng ngày sau:

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

Vì vậy, lệnh chính xác là

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

1
%Tcũng hoạt động thay vì%H:%M:%S
Mateusz Szlosek

Đối với tôi nó hoạt động: $ 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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.