คำสั่งวันที่ - ตัวเลือก -iso-8601


70

นี้คำตอบและความคิดเห็นพูดถึง--rfc-3339และ "ซ่อน" --iso-8601ตัวเลือกที่ฉันได้ใช้มาเป็นเวลานานและตอนนี้ดูเหมือนว่าจะไม่มีเอกสาร

เอกสารตัวเลือกนั้นถูกลบออกจาก--helpข้อความเมื่อใด

ตัวเลือกจะหายไปทุกเวลาเร็ว ๆ นี้?


1
เพื่อให้ได้คุณสมบัตินี้ใน OSX ในที่สุดฉันก็ได้รับเครื่องมือ GNU: $ Brew ติดตั้ง coreutils; gdate --iso-8601 -d "เมื่อวานนี้ 12:00"
AnneTheAgile

3
@AnneTheAgile สำหรับ macOS คุณสามารถจัดรูปแบบวันที่ด้วยตนเองเช่น: "วันที่ +% Y-% m-% dT% H:% M:% S% z"
Bart Doe

คำตอบ:


60

ตัวเลือกถูกนำมาใช้ใน coreutils date(ซึ่งอาจเป็นสิ่งที่คุณมี) ในปี 1999 (8 เมษายน)

เอกสารถูกลบในปี 2005โดยไม่มีคำอธิบายในการส่ง

ในปี 2011ความช่วยเหลือสำหรับ --iso-8601 ได้รับการแนะนำอีกครั้งด้วยคำอธิบายต่อไปนี้:

We deprecated and undocumented the --iso-8601 (-I) option mostly
because date could not parse that particular format.  Now that
it can, it's time to restore the documentation.
* src/date.c (usage): Document it.
* doc/coreutils.texi (Options for date): Reinstate documentation.
Reported by Hubert Depesz Lubaczewski in http://bugs.gnu.org/7444.

ดูเหมือนว่าจะมีการช่วยเหลือในเวอร์ชัน 5.90 และนำกลับมาใช้ในเวอร์ชัน 8.15 (ไม่ใช่ใน 8.13 ของฉัน) และความคิดเห็นข้างต้นแสดงให้เห็นว่าตอนนี้กลับมาอยู่และไม่น่าจะหายไปได้เร็ว ๆ นี้


33

- ช่วยได้รับการอัปเดตจริง ๆ เมื่อเร็ว ๆ นี้ดังนั้นตัวเลือกจะไม่หายไป:

-I[FMT], --iso-8601[=FMT]  output date/time in ISO 8601 format.
                             FMT='date' for date only (the default),
                             'hours', 'minutes', 'seconds', or 'ns'
                             for date and time to the indicated precision.
                             Example: 2006-08-14T02:34:56-06:00

     -R, --rfc-2822        output date and time in RFC 2822 format.
                             Example: Mon, 14 Aug 2006 02:34:56 -0600

         --rfc-3339=FMT    output date/time in RFC 3339 format.
                             FMT='date', 'seconds', or 'ns'
                             for date and time to the indicated precision.
                             Example: 2006-08-14 02:34:56-06:00

หมายเหตุเนื่องจาก coreutils-8.27 --rfc-2822ถูกคัดค้านโดยทั่วไปมากกว่า--rfc-email

     -R, --rfc-email       output date and time in RFC 5322 format.
                             Example: Mon, 14 Aug 2006 02:34:56 -0600

คงจะดีถ้ามี-Iสไตล์ที่ไม่มีเขตเวลา จะมีประโยชน์มากกว่าสำหรับการบันทึก ฯลฯ ที่เขตเวลาไม่สำคัญ
naught101

14

ฉันใช้ Linux Mint และมีตัวเลือกให้ใช้งาน:

$ lsb_release -a
No LSB modules are available.
Distributor ID: LinuxMint
Description:    Linux Mint 17.3 Rosa
Release:    17.3
Codename:   rosa

การดำเนินการของคำสั่ง:

$echo $(date --iso-8601=seconds)
2016-12-14T09:53:25-0400
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.