Saya mencari format standar untuk menggunakan tanggal / waktu sebagai bagian dari nama file dan tidak dapat menemukan apa pun.
Pertanyaan saya adalah dua bagian:
Menggunakan perangko waktu untuk menegakkan keunikan dalam nama file praktik yang buruk?
Saya bisa mendapatkan waktu dari tanggal pembuatan dan membuat serial nama-nama file (file0001.bak, file0002.bak, dll) tetapi hanya termasuk cap waktu memungkinkan melakukan operasi file seperti mv 2011-01* somewhere/
. Apakah ada kerugian menggunakan jenis sistem penamaan ini?
Format yang saya gunakan adalah YYYY-mm-dd_HH-MM-SS
.
Apakah ada format yang lebih baik yang harus saya gunakan?
Dengan format ini apakah saya harus memperhatikan kompatibilitas sistem file, masalah str_to_date_parsing, dll?
Terima kasih!
sunting:
Saya mungkin ingin meninggalkan keluar menegakkan sedikit keunikan karena itu cadangan pembangkit single user menggunakan cronjob (ada tidak boleh ada masalah concurrency).
sumber
Jawaban:
Anda harus mempertimbangkan format ISO 8601 (2013-04-01T13: 01: 02). Ya ada standar untuk hal-hal ini. Titik dua dan tanda hubung dapat dihilangkan.
String format yang biasanya saya gunakan
%Y%m%dT%H%M%S
menghasilkan 20130401T130102. Bergantung pada persyaratan, saya menghilangkan nilai dari kiri. Dalam skrip bash saya mendapatkan tanggal dengan garis seperti:sumber
"%Y-%m-%dT%H:%M:%S%z"
YYYY-MM-DD-HHMMSS
(saya mungkin menghilangkanSS
dalam beberapa kasus). Bagian tanggal cukup mudah dibaca, dan bagian waktu cukup mudah dibaca untuk sebagian besar tujuan.2019.04.01-13.01.02.JPG
atau nama-nama serupa (misalnya190401-130102.JPG
:) lebih baik untuk mata. @ Zero3Tidak apa-apa.
Memberi nomor secara berurutan lebih banyak pekerjaan. Pikirkan cap waktu sebagai penomoran yang meningkat tetapi tidak berurutan.
Tidak, ini dilakukan setiap saat.
Itu bagus, karena mereka akan mengurutkan dalam urutan kronologis. Saya akan kehilangan garis bawah, hanya karena lebih mudah mengetik tanda hubung.
Tidak juga.
sumber
Itu tergantung pada aplikasi Anda. Terkadang cap waktu seperti yang Anda gambarkan dapat digunakan. Terkadang saat benturan nama menjadi masalah, Anda dapat menggunakan generator GUID .
sumber
Format yang Anda gunakan baik-baik saja tetapi jika Anda ingin keunikan dan waktu tidak memiliki arti lain, Anda mungkin memiliki masalah konkurensi dalam aplikasi Anda jika aplikasi tersebut digunakan oleh banyak pengguna dalam waktu yang sama dan semuanya menyebabkan file dibuat dalam waktu yang sama. map. Jika Anda hanya ingin keunikan, Anda dapat mempertimbangkan pembuatan GUID dan menghapus karakter yang tidak valid seperti kurung kurawal dan garis putus-putus dan menggunakannya sebagai nama file.
sumber
Menggunakan format ISO 8601 juga memungkinkan Anda mengurutkan file berdasarkan tanggal (dengan anggapan semuanya memiliki awalan yang sama).
http://www.iso.org/iso/support/faqs/faqs_widely_used_standards/widely_used_standards_other/date_and_time_format.htm
http://en.wikipedia.org/wiki/ISO_8601
sumber
FBI memiliki masalah "tunggal" pengguna untuk membackup 100 juta sidik jari penangkapan kriminal yang mereka terima dari semua polisi di mana-mana ...
... mereka mulai dengan tanggal: yyyymmdd
Saya tidak tahu bagaimana mereka melanjutkan. Saya melanjutkan dengan hhmm dan bagi saya yang melakukannya.
Menggunakan GMT / Zulu terdengar seperti ide bagus untuk solusi global. Secara pribadi saya menggunakan ET, dan FBI "secara pribadi" menggunakan ET juga karena di situlah mereka berkantor pusat.
sumber