Ich suchte nach einem Standardformat für die Verwendung eines Datums / einer Uhrzeit als Teil eines Dateinamens und konnte mir nichts einfallen lassen.
Meine Frage besteht aus zwei Teilen:
Verwendet Zeitstempel einzigartig erzwingen in Dateinamen eine schlechte Praxis?
Ich könnte die Zeit vom Erstellungsdatum abrufen und die Dateinamen (file0001.bak, file0002.bak usw.) serialisieren, aber nur mit dem Zeitstempel können Dateivorgänge wie z mv 2011-01* somewhere/
. Gibt es einen Nachteil bei der Verwendung eines solchen Benennungssystems?
Das von mir verwendete Format ist YYYY-mm-dd_HH-MM-SS
.
Gibt es ein besseres Format, das ich verwenden sollte?
Sollte ich mich bei diesem Format um die Dateisystemkompatibilität, str_to_date_parsing usw. kümmern?
Vielen Dank!
bearbeiten:
Ich könnte gewünscht haben , um den auslassen erzwingen Eindeutigkeit Bit , da es sich um eine Single - User - Erzeugungs Sicherung ist mit einem cronjob (es keine Parallelität Probleme sein sollte).
quelle
Antworten:
Sie sollten das ISO 8601-Format (2013-04-01T13: 01: 02) berücksichtigen. Ja, es gibt Standards für diese Dinge. Die Doppelpunkte und Bindestriche können weggelassen werden.
Die
%Y%m%dT%H%M%S
Formatzeichenfolge, die ich normalerweise verwende, ergibt 20130401T130102. Je nach Anforderung lasse ich Werte von links weg. In einem Bash-Skript erhalte ich das Datum mit einer Zeile wie:quelle
"%Y-%m-%dT%H:%M:%S%z"
YYYY-MM-DD-HHMMSS
(ich könnte dasSS
in einigen Fällen weglassen ). Der Datumsteil ist gut lesbar, und der Zeitteil ist für die meisten Zwecke gut lesbar.2019.04.01-13.01.02.JPG
oder ähnliche Namen (zB190401-130102.JPG
:) sind besser für die Augen. @ Zero3Nein, alles in Ordnung.
Sie fortlaufend zu nummerieren ist mehr Arbeit. Stellen Sie sich den Zeitstempel als zunehmende, aber nicht fortlaufende Nummerierung vor.
Nein, es ist die ganze Zeit erledigt.
Das ist gut, denn sie werden in chronologischer Reihenfolge sortiert. Ich würde den Unterstrich verlieren, nur weil es einfacher ist, einen Bindestrich einzugeben.
Nicht wirklich.
quelle
Das hängt von Ihrer Anwendung ab. Manchmal kann ein Zeitstempel wie der von Ihnen beschriebene verwendet werden. Manchmal, wenn Namenskollisionen ein Problem darstellen, können Sie einen GUID- Generator verwenden.
quelle
Das von Ihnen verwendete Format ist in Ordnung. Wenn Sie jedoch Eindeutigkeit wünschen und die Zeit keine andere Bedeutung hat, liegt möglicherweise ein Parallelitätsproblem in Ihrer Anwendung vor, wenn die Anwendung von mehreren Benutzern zur gleichen Zeit verwendet wird und alle Dateien in derselben erstellt werden Mappe. Wenn Sie nur die Eindeutigkeit wünschen, können Sie eine GUID generieren und ungültige Zeichen wie geschweifte Klammern und Bindestriche entfernen und als Dateinamen verwenden.
quelle
Mit dem ISO 8601-Format können Sie die Dateien auch nach Datum sortieren (vorausgesetzt, sie haben alle das gleiche Präfix).
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
quelle
Das FBI hat ein "einzelnes" Benutzerproblem, das darin besteht, 100 Millionen Fingerabdrücke von kriminellen Festnahmen zu sichern, die sie von allen Polizisten überall erhalten ...
... sie beginnen mit dem Datum: JJJJMMTT
Ich weiß nicht, wie es weitergeht. Ich mache weiter mit hhmm und für mich ist das genau das Richtige .
Die Verwendung von GMT / Zulu klingt nach einer hervorragenden Idee für eine globale Lösung. Persönlich benutze ich ET, und das FBI "persönlich" verwendet auch ET, da sich dort der Hauptsitz befindet.
quelle