回答:
DateTime.ToStringメソッドを使用できます(String)
DateTime.Now.ToString("yyyyMMddHHmmssfff")
string.Format("{0:yyyy-MM-dd_HH-mm-ss-fff}", DateTime.Now)
;
または補間文字列
$"{DateTime.Now:yyyy-MM-dd_HH-mm-ss-fff}"
次のカスタム形式指定子y(年)、M(月)、d(日)、h(時間12)、H(時間24)、m(分)、s(秒)、f(秒の小数)、Fがあります。 (2番目の端数、末尾のゼロは削除されます)、t(PMまたはAM)およびz(タイムゾーン)。
延長方法あり
使用法:
string result = "myfile.txt".AppendTimeStamp();
//myfile20130604234625642.txt
延長方法
public static class MyExtensions
{
public static string AppendTimeStamp(this string fileName)
{
return string.Concat(
Path.GetFileNameWithoutExtension(fileName),
DateTime.Now.ToString("yyyyMMddHHmmssfff"),
Path.GetExtension(fileName)
);
}
}
私は使いたい:
string result = "myFile_" + DateTime.Now.ToFileTime() + ".txt";
ToFileTime()は何をしますか?
現在のDateTimeオブジェクトの値をWindowsファイル時間に変換します。
public long ToFileTime()
Windowsファイル時間は64ビットの値であり、1601年1月1日の午前0時から経過した100ナノ秒間隔の数を表します。1601AD(CE)協定世界時(UTC)。Windowsは、ファイル時間を使用して、アプリケーションがファイルを作成、アクセス、またはファイルに書き込むタイミングを記録します。
ファイルシステム上のファイルの名前として、現在の日付と時刻。次に、string.Formatメソッドを呼び出し、DateTime.Nowと組み合わせて、日付と時刻に基づいて正しい文字列を出力するメソッドを作成します。
using System;
using System.IO;
class Program
{
static void Main()
{
//
// Write file containing the date with BIN extension
//
string n = string.Format("text-{0:yyyy-MM-dd_hh-mm-ss-tt}.bin",
DateTime.Now);
File.WriteAllText(n, "abc");
}
}
出力:
C:\Users\Fez\Documents\text-2020-01-08_05-23-13-PM.bin
"text-{0:yyyy-MM-dd_hh-mm-ss-tt}.bin"
text-必要な出力の最初の部分ファイルはすべてtext-で始まります
{0:これが文字列のプレースホルダーであることを示しますゼロは、ここに挿入されたパラメーターのインデックスを示します
yyyy-年を4桁で出力し、その後にダッシュを続けます。これには「年10000」の問題があります。
MM-月を2桁で印刷します
dd_は、アンダースコアが後に続く2桁で日を出力します
hh-時間を2桁で出力します
mm-同じく2桁で分を出力します
ss-予想通り、秒を出力します
tt時刻に応じてAMまたはPMを出力します
Path.GetDirectoryName(fileName)
ファイルの完全パスを取得するために追加しました。その後、交換しstring.Concat()
てPath.Combine()
完全なファイル名を取得します。