Использование DateTime в качестве имени файла и анализа файла после этого?

StackOverflow https://stackoverflow.com/questions/3749516

Вопрос

Я пишу файлы в мой жесткий диск, имя файла строит так:

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 и преобразованию его в нужный формат Нанизывать

Вы можете обратить его обратно в 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.Arse, предложенный другими, гораздо более уместным.

Поскольку вы работаете с датами, вы можете рассмотреть возможность использования созданной даты или измененной даты файла?

FileInfo f = new FileInfo(fileName);
string title = String.Format("{0:dd.MM.yyyy}", f.CreationTime);
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top