ファイル名の一部としてタイムスタンプを使用するための「標準」形式[非公開]


85

ファイル名の一部として日付/時刻を使用する標準形式を検索しましたが、何も思いつきませんでした。

私の質問は2つの部分です。

タイムスタンプを使用しています 一意を強制する ファイル名に悪い習慣ですか?

作成日から時間を取得し、ファイル名(file0001.bak、file0002.bakなど)をシリアル化できますが、タイムスタンプを含めるだけでなどのファイル操作を実行できますmv 2011-01* somewhere/。このタイプのネーミングシステムを使用することには欠点がありますか?

私が使用している形式はですYYYY-mm-dd_HH-MM-SS

使用すべきより良い形式はありますか?

この形式では、ファイルシステムの互換性、str_to_date_parsingの問題などを考慮する必要がありますか?

ありがとう!

編集:

単一のユーザーがcronjobを使用してバックアップを生成するため、一意性を強制するビットは省いた方がよいかもしれません(同時実行の問題はないはずです)。


9
一般的に、YYYYmmddHHMMSSを使用するだけで、数値または字句的にソート/フィルターできます。
11

「yyyy mmdd hhmm」を使用します。私の会社はグローバルに展開しているため、GMTを使用してタイムスタンプを付けます。私がこれを書いているとき、それは「2011 0325 0245」です。なぜなら、それは今ロンドンの時間だからです(そして、彼らはまだ標準時間です)。私にとって東部標準時である現地時間で指定したい場合は、「yyyy mmdd hhmm ET」を使用します。
マイクローゼンブラム

私はエポック以来の秒を使用しているので、タイムゾーン、うるう年、および夏時間の節約に対処する必要はありません。また、日付/時刻の計算が簡単になります。
-Dietbuddha


2
私はblog.xam.de/2016/07/の投稿でISO 8601に基づく形式を提案します...-形式に同意できれば、私たちの世界がより簡単になります:-)
Dr. MaxVölkel16年

回答:


62

ISO 8601形式(2013-04-01T13:01:02)を考慮する必要があります。はい、これらのものには標準があります。コロンとハイフンは省略できます。

私が通常使用するフォーマット文字列は%Y%m%dT%H%M%S、20130401T130102になります。要件に応じて、左から値を省略します。bashスクリプトでは、次のような行で日付を取得します。

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

32
Windowsシステムを使用している場合、コロンはファイル名で違法であるため、必ず省略する必要があります!
カーソン63000

2
strftimeを使用する場合、フォーマット文字列は"%Y-%m-%dT%H:%M:%S%z"
アレックジェイコブソン

6
使用しますYYYY-MM-DD-HHMMSSSS場合によっては省略します)。日付部分は非常に読みやすく、時間部分はほとんどの目的に対して十分に読みやすいです。
キーストンプソン14年

15
標準かどうかにかかわらず、「20130401T1301102」はあまりユーザーフレンドリーではありません。これらの種類のタイムスタンプが名前に含まれているソフトウェアログファイルを見ると、目が痛くなります。
Zero3

1
2019.04.01-13.01.02.JPGまたは類似の名前(例190401-130102.JPG:)は目にとってより良いものです。@ Zero3
S.セルポーシャン

4

ファイル名の一部として日付/時刻を使用する標準形式を検索しましたが、何も思いつきませんでした。

私の質問は2つの部分です。

タイムスタンプを使用して一意のファイル名を適用するのは悪い習慣ですか?

大丈夫です。

作成日から時間を取得し、ファイル名(file0001.bak、file0002.bakなど)をシリアル化できます。

それらに順番に番号を付けることは、より多くの作業です。タイムスタンプは、増加しているが連続していない番号付けと考えてください。

ただし、タイムスタンプを含めるだけで、mv 2011-01 * somewhere /などのファイル操作を実行できます。このタイプのネーミングシステムを使用することには欠点がありますか?

いいえ、常に行われています。

私が使用している形式は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_format.htm
http://en.wikipedia.org/wiki/ISO_8601


5
あなたが言おうとしていることは、語彙的にソートは最終的に日付でソートされるということだと思います。
マイケルコーネ

-3

FBIには、あらゆる警察から受け取った1億人の刑事逮捕指紋をどこからでもバックアップするという「単一の」ユーザー問題があります...

...日付で始まります:yyyymmdd

それらがどのように続くのか分かりません。私はhhmmを続行します。

GMT / Zuluを使用することは、グローバルソリューションの優れたアイデアのようです。個人的にはETを使用しており、FBIは「個人的に」ETも使用しています。


3
これは、他の投稿のはるかに一般的な議論に何も追加しません。実際の議論では、法的な性格や並べ替え、一意性などの側面に触れます。
マーティンピーターズ14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.