131

ファイルの作成時にファイル名にタイムスタンプを追加したいのですが、私が試したほとんどの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

4

8 に答える 8

208

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

DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");
于 2012-09-19T17:44:17.333 に答える
152

区切り文字なしでISO8601形式を使用します。

DateTime.Now.ToString("yyyyMMddTHHmmss")
于 2012-09-19T17:48:43.183 に答える
21

私も同様の状況ですが、ファイル名からもDateTime.Parseを使用できるようにするための一貫した方法が必要なので、

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

解析したいときは、Replace呼び出しを逆にするだけです。このようにして、yymmddのものを入力したり、DateTime.Parseで許可されている形式を推測したりする必要はありません。

于 2016-10-25T23:59:16.640 に答える
11

個人的に私はこのようにそれが好きです:

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

日付と時刻を区別するためです。

于 2016-07-29T21:16:54.120 に答える
9

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

dd -01から31までの月の日

MM-月、01から12まで

yyyy -4桁の数字としての年。

hh --hour、01から12までの12時間を使用し

mm-分、00から59まで

ss-、 00から59まで。

HH --時間、 00から23までの24時間制を使用し

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";

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

于 2018-01-31T10:29:10.847 に答える
5

補間文字列とフォーマット指定子の使用:

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

2020年1月1日の午前10時40分45秒の出力例:

2020.28.01 10-40-45


または、標準の日付形式が必要な場合:

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

2020.01.28 10-40-45


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

于 2018-05-18T02:30:10.560 に答える
4

あなたはで試すことができます

var result = DateTime.Now.ToString("yyyy-MM-d--HH-mm-ss");
于 2012-09-19T17:46:14.587 に答える
2

次のようにファイルのパスを作成できます。

string path = "fileName-"+DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss") + ".txt";
于 2017-08-23T07:53:43.137 に答える