รูปแบบ“ มาตรฐาน” สำหรับการใช้การประทับเวลาเป็นส่วนหนึ่งของชื่อไฟล์ [ปิด]


85

ฉันค้นหารูปแบบมาตรฐานเพื่อใช้วันที่ / เวลาเป็นส่วนหนึ่งของชื่อไฟล์และไม่สามารถเกิดอะไรขึ้นได้

คำถามของฉันคือสองส่วน:

กำลังใช้การประทับเวลา เพื่อบังคับใช้ที่ไม่ซ้ำกัน ในชื่อไฟล์การปฏิบัติที่ไม่ดี?

ฉันจะได้รับเวลาจากวันที่สร้างและเป็นอันดับชื่อไฟล์ (file0001.bak, file0002.bak ฯลฯ ) mv 2011-01* somewhere/แต่เพียงรวมถึงการประทับเวลาช่วยให้การดำเนินการดังกล่าวเป็นแฟ้ม มีข้อเสียในการใช้ระบบการตั้งชื่อประเภทนี้หรือไม่?

YYYY-mm-dd_HH-MM-SSรูปแบบที่ผมกำลังใช้งานอยู่

มีรูปแบบที่ดีกว่าที่ฉันควรใช้หรือไม่

ด้วยรูปแบบนี้ฉันควรจะเกี่ยวข้องกับความเข้ากันได้ของระบบไฟล์, str_to_date_parsing ข้อกังวล ฯลฯ ?

ขอบคุณ!

แก้ไข:

ฉันอาจต้องการออกจากการบังคับใช้บิตที่ไม่ซ้ำกันเนื่องจากเป็นผู้ใช้เดียวที่สร้างการสำรองข้อมูลโดยใช้ cronjob (ไม่ควรมีปัญหาใด ๆ ที่เกิดขึ้นพร้อมกัน)


9
โดยทั่วไปฉันแค่ใช้ YYYYmmddHHMMSS จากนั้นก็สามารถเรียงลำดับ / กรองเป็นตัวเลขหรือศัพท์
Orbling

ฉันใช้ "yyyy mmdd hhmm" บริษัท ของฉันมีการเข้าถึงทั่วโลกดังนั้นฉันจึงประทับเวลาด้วย GMT ดังนั้นเมื่อฉันเขียนสิ่งนี้มันจะเป็น "2011 0325 0245" เพราะนั่นเป็นเวลาในลอนดอนตอนนี้ (และพวกเขายังคงอยู่ในเวลามาตรฐานในขณะนี้) หากฉันต้องการระบุในเวลาท้องถิ่นซึ่งเป็นเวลาตะวันออกสำหรับฉันฉันจะใช้ "yyyy mmdd hhmm ET"
Mike Rosenblum

ฉันใช้วินาทีตั้งแต่ Epoch ดังนั้นฉันจึงไม่ต้องจัดการกับโซนเวลาการประหยัดแสงแบบปีและวันกระโดด ยังทำให้คณิตศาสตร์วันที่ / เวลาง่ายขึ้น
dietbuddha

1
ดูเพิ่มเติม: serverfault.com/questions/292014/…
Zero3

2
ฉันเสนอรูปแบบตามมาตรฐาน ISO 8601 ในโพสต์ที่blog.xam.de/2016/07/ … - จะทำให้โลกของเราง่ายขึ้นถ้าเราสามารถเห็นด้วยกับรูปแบบ :-)
Dr. Max Völkel

คำตอบ:


62

คุณควรพิจารณารูปแบบ ISO 8601 (2013-04-01T13: 01: 02) ใช่มีมาตรฐานสำหรับสิ่งเหล่านี้ โคลอนและยัติภังค์อาจถูกละเว้น

สตริงรูปแบบที่ฉันใช้มักจะ%Y%m%dT%H%M%Sให้ผลลัพธ์เป็น 20130401T130102 ขึ้นอยู่กับข้อกำหนดที่ฉันละเว้นค่าจากด้านซ้าย ในสคริปต์ทุบตีฉันได้รับวันที่ด้วยบรรทัดเช่น:

LOGDATE=$(date +%Y%m%dT%H%M%S)

32
โคลอนจะต้องถูกตัดออกอย่างแน่นอนถ้าคุณใช้ระบบ Windows เพราะมันผิดกฎหมายในชื่อไฟล์!
Carson63000

2
สำหรับผู้ที่ใช้ strftime สตริงรูปแบบคือ"%Y-%m-%dT%H:%M:%S%z"
Alec Jacobson

6
ฉันใช้YYYY-MM-DD-HHMMSS(ฉันอาจละเว้นSSในบางกรณี) ส่วนของวันที่นั้นสามารถอ่านได้และส่วนเวลานั้นสามารถอ่านได้เพียงพอสำหรับวัตถุประสงค์ส่วนใหญ่
Keith Thompson

15
มาตรฐานหรือไม่ "20130401T1301102" นั้นใช้งานง่ายมาก ตาของฉันเจ็บปวดเมื่อฉันเห็นไฟล์บันทึกของซอฟต์แวร์ด้วยการประทับเวลาแบบนี้ในชื่อของพวกเขา
Zero3

1
2019.04.01-13.01.02.JPGหรือชื่อที่คล้ายกัน (เช่น190401-130102.JPG:) จะดีกว่าสำหรับดวงตา @ Zero3
S.Serpooshan

4

ฉันค้นหารูปแบบมาตรฐานเพื่อใช้วันที่ / เวลาเป็นส่วนหนึ่งของชื่อไฟล์และไม่สามารถเกิดอะไรขึ้นได้

คำถามของฉันคือสองส่วน:

การใช้การประทับเวลาเพื่อบังคับใช้ชื่อไฟล์ที่ไม่ซ้ำกันเป็นการปฏิบัติที่ไม่ดีหรือไม่?

ไม่เป็นไร.

ฉันสามารถรับเวลาจากวันที่สร้างและสร้างชื่อไฟล์ (file0001.bak, file0002.bak เป็นต้น)

การกำหนดหมายเลขให้เรียงกันจะทำงานได้มากกว่า คิดว่าการประทับเวลาเป็นการเพิ่มจำนวน แต่ไม่ต่อเนื่องกัน

แต่เพียงรวมถึงการประทับเวลาให้ดำเนินการไฟล์เช่น mv 2011-01 * ที่ / มีข้อเสียในการใช้ระบบการตั้งชื่อประเภทนี้หรือไม่?

ไม่มันทำตลอดเวลา

รูปแบบที่ฉันใช้คือ YYYY-mm-dd_HH-MM-SS

นั่นเป็นสิ่งที่ดีเพราะพวกเขาจะเรียงลำดับตามลำดับเวลา ฉันจะทำเครื่องหมายขีดล่างเพียงเพราะพิมพ์ยัติภังค์ได้ง่ายขึ้น

มีรูปแบบที่ดีกว่าที่ฉันควรใช้หรือไม่

ไม่ได้จริงๆ


2
ฉันจะบอกว่า "ใช้รูปแบบเวลามาตรฐาน ISO" ดังนั้น YYYY-mm-ddTHH: MM: SS (หรือ yyyymmddTHHMMSS)
Vatine

3

ขึ้นอยู่กับใบสมัครของคุณ บางครั้งการประทับเวลาเช่นเดียวกับที่คุณอธิบายไว้สามารถใช้ได้ บางครั้งเมื่อมีการชนกันของชื่อคุณสามารถใช้ตัวสร้างGUIDได้


2

รูปแบบที่คุณใช้นั้นดี แต่ถ้าคุณต้องการความเป็นเอกลักษณ์และเวลานั้นไม่มีความหมายอื่นคุณอาจมีปัญหาการทำงานพร้อมกันในแอปพลิเคชันของคุณหากผู้ใช้หลายคนใช้แอปพลิเคชันพร้อมกันในเวลาเดียวกัน โฟลเดอร์ หากคุณต้องการความเป็นเอกลักษณ์คุณอาจพิจารณาสร้าง GUID และลบอักขระที่ไม่ถูกต้องเช่นเครื่องหมายปีกกาและเครื่องหมายขีดกลางและใช้เป็นชื่อไฟล์


2

การใช้รูปแบบ ISO 8601 ยังช่วยให้คุณเรียงลำดับไฟล์ตามวันที่ (สมมติว่าไฟล์ทั้งหมดมีคำนำหน้าเหมือนกัน)

http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/date_and_time_time_format.htm
http://en.wikipedia.org/wiki/ISO_8601


5
ฉันคิดว่าสิ่งที่คุณพยายามจะพูดก็คือการเรียงลำดับจบลงด้วยการเรียงลำดับตามวันที่
Michael Kohne

-3

FBI มีปัญหาผู้ใช้ "เดี่ยว" ในการสำรองข้อมูลลายนิ้วมือจับกุมอาชญากร 100 ล้านที่พวกเขาได้รับจากตำรวจทุกแห่งทุกแห่ง ...

... พวกเขาเริ่มต้นด้วยวันที่: yyyymmdd

ฉันไม่รู้ว่าพวกเขาจะทำอย่างไรต่อ ฉันทำต่อไปด้วยhhmmและสำหรับฉันนั่นทำ

การใช้ GMT / Zulu ดูเหมือนเป็นแนวคิดที่ยอดเยี่ยมสำหรับโซลูชันระดับโลก ส่วนตัวฉันใช้ ET และ FBI "ส่วนตัว" ใช้ ET เช่นกันเนื่องจากเป็นที่ที่พวกเขามีสำนักงานใหญ่


3
สิ่งนี้ไม่ได้เพิ่มอะไรเลยในการสนทนาทั่วไปในกระทู้อื่น ๆ ซึ่งสัมผัสกับแง่มุมต่าง ๆ เช่นตัวละครที่ถูกกฎหมายและการเรียงลำดับและไม่เหมือนใคร
Martijn Pieters
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.