Bir dosya adının parçası olarak bir zaman damgası kullanmak için “Standart” formatı [kapalı]


85

Bir dosya adının parçası olarak bir tarih / saat kullanmak için standart bir format aradım ve hiçbir şey bulamadım.

Sorum iki bölümden oluşuyor:

Zaman damgası kullanıyor benzersiz zorlamak dosya adlarında kötü bir uygulama?

Oluşturma tarihinden itibaren zaman alabilir ve dosya adlarını (file0001.bak, file0002.bak, vb.) Serileştirebilirim mv 2011-01* somewhere/. Bu tür adlandırma sisteminin kullanılmasının olumsuz bir tarafı var mı?

Kullandığım format YYYY-mm-dd_HH-MM-SS.

Kullanmam gereken daha iyi bir format var mı?

Bu format ile dosya sistemi uyumluluğu, str_to_date_parsing endişeleri, vb.

Teşekkürler!

Düzenle:

Bir cronjob kullanarak yedekleme üreten tek bir kullanıcı olduğu için zorlama benzersizliği bitini bırakmak istemiş olabilirim (eşzamanlılık sorunu olmamalıdır).


9
Genellikle, sadece YYYYmmddHHMMSS kullanıyorum, sonra sayısal veya sözcüksel olarak sıralanıp / filtrelenebiliyor.
Orbling

Ben "yyyy mmdd hhmm" kullanıyorum. Firmamın global erişimi var, bu yüzden GMT'yi kullanarak zaman damgası yapıyorum. Bunu yazarken, "2011 0325 0245" olacaktı, çünkü şu an Londra'daki saat (ve şu an hala standart saatlerdedirler). Benim için Doğu Saati olan yerel zamanda belirtmek istersem, "yyyy mmdd hhmm ET" kullanırım.
Mike Rosenblum

Epoch'tan bu yana saniyeler kullanıyorum, bu yüzden zaman dilimleri, artık yıl ve gün ışığı tasarrufu ile uğraşmak zorunda kalmıyorum. Ayrıca tarih / saat matematiğini kolaylaştırır.
dietbuddha


2
Blog.xam.de/2016/07/… adresindeki bir yayında ISO 8601'e dayanan bir format öneririm - eğer bir formatta anlaşırsak, dünyamızı kolaylaştırabilir :-)
Dr. Max Völkel

Yanıtlar:


62

ISO 8601 formatını göz önünde bulundurmalısınız (2013-04-01T13: 01: 02). Evet bunlar için standartlar var. Kolonlar ve kısa çizgiler atlanabilir.

Genellikle kullandığım biçim dizgisi %Y%m%dT%H%M%S20130401T130102'yi veriyor. Gereksinimlere bağlı olarak, değerleri soldan atlıyorum. Bir bash betiğinde şöyle bir çizgi ile tarih alırım:

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

32
Bir Windows sistemindeyseniz, bir dosya adında yasadışı olduklarından, iki nokta üst üste konulmayacak!
Carson63000

2
Strftime kullananlar için, biçim dizesi"%Y-%m-%dT%H:%M:%S%z"
Alec Jacobson

6
Kullandığım YYYY-MM-DD-HHMMSS(ı ihmal olabilir SSbazı durumlarda). Tarih kısmı oldukça okunaklıdır ve zaman kısmı çoğu amaç için yeterince okunabilir.
Keith Thompson

15
Standart veya değil, "20130401T1301102" çok kullanıcı dostu değil. Yazılım kayıtlarını isimlerinde bu tür zaman damgalarıyla gördüğümde gözlerim ağrıyor.
Sıfır3

1
2019.04.01-13.01.02.JPGveya benzeri isimler (örneğin 190401-130102.JPG:) gözler için daha iyidir. @ Zero3
S.Serpooshan

4

Bir dosya adının parçası olarak bir tarih / saat kullanmak için standart bir format aradım ve hiçbir şey bulamadım.

Sorum iki bölümden oluşuyor:

Benzersiz dosya adlarını uygulamak için bir zaman damgası kullanmak kötü bir uygulama mı?

Hayır, bu iyi.

Oluşturma tarihinden itibaren zaman alabilir ve dosya adlarını serileştirebilirim (file0001.bak, file0002.bak, vb.)

Bunları sırayla numaralandırmak daha fazla iştir. Zaman damgasını artan, ancak sıralı olmayan bir numaralandırma olarak düşünün.

ancak sadece zaman damgası dahil olmak üzere mv 2011-01 * gibi dosya işlemlerini gerçekleştirebilirsiniz /. Bu tür adlandırma sisteminin kullanılmasının bir dezavantajı var mı?

Hayır, her zaman yapılır.

Kullandığım format YYYY-aa-gg_HH-AA-SS'dir.

Bu iyi, çünkü kronolojik sıraya göre sıralayacaklar. Alt çizgiyi kaybederim, çünkü kısa çizgi yazmak daha kolaydır.

Kullanmam gereken daha iyi bir format var mı?

Pek sayılmaz.


2
"ISO standart zaman formatını kullan" derdim. Öyleyse, YYYY-aa-gGTHH: AA: SS (veya yyyymmddTHHMMSS).
Vatine

3

Bu uygulamanıza bağlıdır. Bazen tarif ettiğinize benzer bir zaman damgası kullanılabilir. Bazen isim çarpışma bir endişe olduğunda, bir GUID oluşturucu kullanabilirsiniz .


2

Kullanmakta olduğunuz biçim gayet iyi ancak benzersizlik ve zamanın başka bir anlamı yoksa, uygulama aynı anda birden fazla kullanıcı tarafından kullanılıyorsa ve hepsi aynı dosyaların oluşturulmasına neden oluyorsa, uygulamanızda eşzamanlılık sorunu yaşayabilirsiniz. Klasör. Eğer sadece benzersiz olmak istiyorsanız, GUID oluşturmayı ve küme parantezleri ve kısa çizgiler gibi geçersiz karakterleri silmeyi dosya adı olarak kullanabilirsiniz.



-3

FBI, her yerdeki tüm polislerden aldıkları 100 milyon suçlu tutuklama parmak izini yedekleme konusunda "tek" bir kullanıcı sorununa sahip ...

... tarihle başlarlar: yyyymmdd

Nasıl devam ettiklerini bilmiyorum. Hmm ile devam ediyorum ve benim için bunu yapıyor.

GMT / Zulu kullanımı, küresel bir çözüm için mükemmel bir fikir gibi geliyor. Şahsen ET'yi kullanıyorum ve FBI “kişisel olarak” ET'yi merkeziledikleri yerden beri kullanıyor.


3
Bu, diğer yazılarda, yasal karakterler, sıralama ve benzersizlik gibi konulara değinen daha genel bir tartışmaya hiçbir şey eklemez.
Martijn Pieters
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.