Szukałem standardowego formatu do używania daty / godziny jako części nazwy pliku i nie byłem w stanie nic wymyślić.
Moje pytanie składa się z dwóch części:
Używa znaczników czasu egzekwować unikalne w nazwach plików zła praktyka?
Mógłbym uzyskać czas od daty utworzenia i serializować nazwy plików (file0001.bak, file0002.bak itp.), Ale po prostu wraz ze znacznikiem czasu pozwala wykonywać operacje na plikach, takie jak mv 2011-01* somewhere/
. Czy korzystanie z tego rodzaju systemu nazewnictwa ma jakąś wadę?
Format, którego używam to YYYY-mm-dd_HH-MM-SS
.
Czy jest lepszy format, którego powinienem używać?
Czy w tym formacie należy zwracać uwagę na kompatybilność systemu plików, str_to_date_parsing itp.?
Dzięki!
edytować:
Mógłbym chcieć pominąć bit wymuszenia unikatowości, ponieważ jest to pojedynczy użytkownik generujący kopię zapasową przy użyciu usługi współdziałania (nie powinno być żadnych problemów z współbieżnością).
źródło
Odpowiedzi:
Należy wziąć pod uwagę format ISO 8601 (2013-04-01T13: 01: 02). Tak, istnieją standardy dla tych rzeczy. Okrężnice i łączniki można pominąć.
Ciąg formatu, którego zwykle używam,
%Y%m%dT%H%M%S
daje 20130401T130102. W zależności od wymagań pomijam wartości z lewej strony. W skrypcie bash otrzymuję datę z linią:źródło
"%Y-%m-%dT%H:%M:%S%z"
YYYY-MM-DD-HHMMSS
(SS
w niektórych przypadkach mogę pominąć ). Część daty jest dość czytelna, a część czasu jest wystarczająco czytelna dla większości celów.2019.04.01-13.01.02.JPG
lub podobne nazwy (np .190401-130102.JPG
:) są lepkie dla oczu. @ Zero3Nie, w porządku.
Kolejne numerowanie to więcej pracy. Pomyśl o znaczniku czasu jako o rosnącej, ale niesekwencyjnej numeracji.
Nie, robi się to cały czas.
To dobrze, ponieważ będą sortować w porządku chronologicznym. Straciłbym podkreślenie tylko dlatego, że łatwiej jest wpisać myślnik.
Nie całkiem.
źródło
To zależy od twojej aplikacji. Czasami można użyć znacznika czasu takiego jak opisany. Czasami, gdy kolizja nazw jest problemem, możesz użyć generatora GUID .
źródło
Format, którego używasz, jest w porządku, ale jeśli chcesz wyjątkowości, a czas nie ma innego znaczenia, możesz mieć problem z współbieżnością w aplikacji, jeśli aplikacja jest używana przez wielu użytkowników w tym samym czasie i wszystkie one powodują, że pliki są tworzone w tym samym teczka. Jeśli chcesz tylko wyjątkowości, możesz rozważyć wygenerowanie identyfikatora GUID i usunięcie wszelkich nieprawidłowych znaków, takich jak nawiasy klamrowe i myślniki, i użycie go jako nazwy pliku.
źródło
Korzystanie z formatu ISO 8601 pozwala również sortować pliki według daty (zakładając, że wszystkie mają ten sam prefiks).
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
źródło
FBI ma problem „jednego użytkownika”, polegający na utworzeniu kopii zapasowych 100 milionów odcisków palców aresztowań kryminalnych, które otrzymują od całej policji na całym świecie ...
... zaczynają się od daty: rrrrmmdd
Nie wiem jak oni kontynuują. Kontynuuję z hhmm i dla mnie to robi.
Korzystanie z GMT / Zulu wydaje się być doskonałym pomysłem na globalne rozwiązanie. Ja osobiście używam ET, a FBI „osobiście” również używa ET, ponieważ tam właśnie mają swoją siedzibę.
źródło