2

ハードドライブにファイルを書き込んでいます。ファイル名は次のように作成されています。

String.Format("{0:yyyy-MM-dd_hh-mm-ss}.txt", DateTime.Now)

したがって、ファイル名はたとえば「2010-09-20_09-47-04.txt」です。次に、これらのファイル名をドロップダウンで表示しますが、別の形式で表示します。形式はdd.MM.yyyyHH:mm:ssである必要があります。どうすればそれを行うことができますか、またはより良いアプローチがありますか?

ありがとう :)

4

5 に答える 5

6

私はコンソールでこれを試しました、そしてそれは仕事をしました。

Imports System.Globalization
Module Module1

Sub Main()
    Dim enUS As New CultureInfo("en-US")
    Dim d As String = Format(DateTime.Now, "yyyy-MM-dd_hh-mm-ss")
    Dim da As Date = DateTime.ParseExact(d, "yyyy-MM-dd_hh-mm-ss", enUS)
    Console.WriteLine("Date from filename: {0}", d)
    Console.WriteLine("Date formated as date: {0}", Format(da, "dd.MM.yyyy HH:mm:ss"))

End Sub
End Module

それが役に立てば幸い。

于 2010-09-20T08:04:55.937 に答える
5

DateTime.ParseExactを、名前の作成に使用したのと同じ形式で使用して、ファイル名をDateTimeオブジェクトに解析し、ToStringを使用して目的の形式に変換できます。

于 2010-09-20T07:55:39.173 に答える
2

解析してに戻しDateTime、表示形式にフォーマットすることができます。

于 2010-09-20T07:54:28.680 に答える
1
string FileName = "2010-09-20_09-47-04";
DateTime dt = new DateTime();
dt = DateTime.Parse(FileName.Substring(0, 10));
dt.ToString("dd.MM.yyyy");
于 2010-09-20T07:56:31.187 に答える
0

正規表現を使用してファイル名を解析できます。

Regex r = new Regex("(\d{4})-(\d{2})-(\d{2})-(\d{2})_(\d{2})-(\d{2})-(\d{2}).txt");
Match m = r.Match(fileName);

更新:他の人が提案したDateTime.Parseアプローチの方がはるかに適切です。

日付を使用しているので、代わりにファイルの作成日または変更日を使用することを検討してください。

FileInfo f = new FileInfo(fileName);
string title = String.Format("{0:dd.MM.yyyy}", f.CreationTime);
于 2010-09-20T07:57:32.707 に答える