ファイル名または拡張子で使用できるDateTime.ToString()形式?


100

ファイルが作成されたときにファイル名にタイムスタンプを追加したいのですが、ほとんどのDateTimeメソッドでは、スペースとスラッシュを使用して出力を試みました。例えば:

Debug.WriteLine(DateTime.Now.ToString()); // <-- 9/19/2012 1:41:46 PM
Debug.WriteLine(DateTime.Now.ToShortTimeString()); // <-- 1:41 PM
Debug.WriteLine(DateTime.Now.ToShortDateString()); // <-- 9/19/2012
Debug.WriteLine(DateTime.Now.ToFileTime()); // <-- 129925501061462806

ToFileTime()動作しますが、人間が読み取れるわけではありません。ファイル名または拡張子で使用できる日時を含む人間が読めるタイムスタンプに出力をフォーマットするにはどうすればよいですか?できれば次のようなもの2011-19-9--13-45-30


2
これについては... DateTime.Now.ToString( "yyyy-MM-dd--hh-mm-ss")
Gene S

回答:


177

あなたはこれを使うことができます:

DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");

5
その他の例/オプションについては、こちらをご覧ください:geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm
Kristof Claes

1
utc時間の方が良いと思う
RealSteel

89
年と月の間に日があることを真剣に提案していますか?
kjbartel 2017年

10
ファイルのリストを名前でソートして日時順に取得することはできないため、ファイル名ではさらに言い訳ができません。最も重要なものから最も重要でないものまで、その日の順序でなければなりません。
Bernhard Hofmann 2018年

4
@Matt-ファイル名は、常にではない、作成/変更/アクセスされた日付に関連していると想定します。
Bernhard Hofmann、

121

セパレータなしのISO 8601形式を使用します。

DateTime.Now.ToString("yyyyMMddTHHmmss")

7
を使用するとDateTime.Now.ToString("o")、それが表示されますyyyy-MM-ddTHH:mm:ss.fffffff-HH:mm(最後の時間と分のオフセットは+/- GMTです)。確かに、これはファイル名の形式としては機能しませんが、"o"形式は知っておくと役に立ちます。
クリルガー'26

16

同様の状況がありますが、ファイル名からもDateTime.Parseを使用できるようにする一貫した方法が欲しいので、

DateTime.Now.ToString("s").Replace(":", ".") // <-- 2016-10-25T16.50.35

解析したい場合は、単にReplace呼び出しを元に戻すことができます。このようにして、yymmddを入力したり、DateTime.Parseが許可する形式を推測したりする必要はありません。


8

以下のリストは、最も一般的に使用される時間形式指定子のリストです。

DD -月の、01から31まで。

MM -月の 01から12まで、。

yyyy -4桁の数値としての

HH -時間、使用して 12時間の 01から12にクロックを。

MM - 00から59まで、。

SS - 00から59を介して、。

HH -時間、使用して 24時間 00から23にクロックを。

tt - AM / PM指定子。

上記を使用すると、ファイル名に一意の名前を付けることができます。

ここで私は例を提供しました

string fileName = "fileName_" + DateTime.Now.ToString("MM-dd-yyyy_hh-mm-ss-tt") + ".pdf";

または

シンボルを使用したくない場合は、これも試すことができます。、

string fileName = "fileName_" + DateTime.Now.ToString("MMddyyyyhhmmsstt") + ".pdf";

これが現在または将来の誰かに役立つことを願っています。:)




3

使用して補間文字列&書式指定子を

var filename = $"{DateTime.Now:yyyy.dd.M HH-mm-ss}"

または、アメリカにいない場合:

var filename = $"{DateTime.Now:yyyy.M.dd HH-mm-ss}"

この機能は、言語のC#6以降のバージョンで使用できます。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.