我正在将文件写入我的硬盘,文件名是这样构建的:
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。我怎么能这样做,还是有更好的方法?
谢谢:)
答案 0 :(得分: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
希望它有所帮助。
答案 1 :(得分:5)
您可以使用DateTime.ParseExact使用与构建名称相同的格式将文件名解析为DateTime对象,然后使用ToString将其转换为所需的格式
答案 2 :(得分:2)
您可以将其解析回DateTime
,然后将其格式化为您的显示格式。
答案 3 :(得分: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");
答案 4 :(得分: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);