我正在将文件写入硬盘,文件名是这样构建的:
String.Format("{0:yyyy-MM-dd_hh-mm-ss}.txt", DateTime.Now)
例如,文件名是“2010-09-20_09-47-04.txt”。现在我想在下拉列表中显示这些文件名,但使用另一种格式。格式应为 dd.MM.yyyy HH:mm:ss。我该怎么做,或者有更好的方法吗?
谢谢 :)
我正在将文件写入硬盘,文件名是这样构建的:
String.Format("{0:yyyy-MM-dd_hh-mm-ss}.txt", DateTime.Now)
例如,文件名是“2010-09-20_09-47-04.txt”。现在我想在下拉列表中显示这些文件名,但使用另一种格式。格式应为 dd.MM.yyyy HH:mm:ss。我该怎么做,或者有更好的方法吗?
谢谢 :)
我在控制台上试过这个,它完成了工作。
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
希望能帮助到你。
您可以使用DateTime.ParseExact与用于构建名称的相同格式将文件名解析为 DateTime 对象,然后使用ToString将其转换为所需的格式
您可以将其解析回 a DateTime
,然后将其格式化为您的显示格式。
string FileName = "2010-09-20_09-47-04";
DateTime dt = new DateTime();
dt = DateTime.Parse(FileName.Substring(0, 10));
dt.ToString("dd.MM.yyyy");
您可以使用正则表达式解析文件名:
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);