значение datetime.ToString () формат, который может быть использован в имени файла или расширения?


Я хочу добавить метку времени к именам файлов при создании файлов, но большинство методов DateTime, которые я пробовал, выводят что-то с пробелами и косыми чертами. Например:

Debug.WriteLine(DateTime.Now.ToString()); // <-- 9/19/2012 1:41:46 PM
Debug.WriteLine(DateTime.Now.ToShortTimeString()); // <-- 1:41 PM
Debug.WriteLine(DateTime.Now.ToShortDateString()); // <-- 9/19/2012
Debug.WriteLine(DateTime.Now.ToFileTime()); // <-- 129925501061462806

ToFileTime() работает, но не совсем удобочитаемое. Как я могу отформатировать вывод в удобочитаемую метку времени с датой и временем, которые можно использовать в имени файла или расширении? Предпочтительно что-то вроде 2011-19-9--13-45-30?

9 64

9 ответов:

вы можете использовать это:

DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");

Я бы использовал ISO 8601 формат без разделителей:

DateTime.Now.ToString("yyyyMMddTHHmmss")

У меня похожая ситуация, но я хочу, чтобы последовательный способ мог использовать DateTime.Разбор от имени файла, так что я пошел с

DateTime.Now.ToString("s").Replace(":", ".") // <-- 2016-10-25T16.50.35

когда я хочу разобрать, я могу просто отменить вызов Replace. Таким образом, мне не нужно вводить какие-либо материалы yymmdd или угадывать, какие форматы DateTime.Разбор позволяет.

С

var result = DateTime.Now.ToString("yyyy-MM-d--HH-mm-ss");

лично мне это нравится так:

DateTime.Now.ToString("yyyy-MM-dd HH.mm.ss")

, потому что он различает дату и время.

вы можете сделать путь к файлу, как показано ниже:

string path = "fileName-"+DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss") + ".txt";

ниже приведен список наиболее часто используемых спецификаторов формата времени.,

dd--день месяца, с 01 по 31.

мм--месяц, С 01 по 12.

гггг--год как четырехзначное число.

НН--час, С помощью 12-час часы с 01 до 12.

мм--минуту, С 00 до 59.

ss--второй, С 00 до 59.

НН--час, используя a 24 часа часы с 00 до 23.

tt-- AM / PM целеуказателя.

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

вот я привел пример

string fileName = "fileName_" + DateTime.Now.ToString("MM-dd-yyyy_hh-mm-ss-tt") + ".pdf";

или

Если вы не предпочитаете использовать символы, которые вы можете попробовать это также.,

string fileName = "fileName_" + DateTime.Now.ToString("MMddyyyyhhmmsstt") + ".pdf";

надеюсь, что это поможет кому-то сейчас или в будущем. :)

используя интерполяция строка & формата:

var filename = $"{DateTime.Now:yyyy.dd.M HH-mm-ss}"

или если вы не в Америке:

var filename = $"{DateTime.Now:yyyy.M.dd HH-mm-ss}"

эта функция доступна в C# 6 и более поздних версиях языка.

попробуйте это:

time.ToLongDateString()

Вывод: "Пятница, 24 Августа 2018 Года"

или форматирования использовать:

time.ToString("yyyy_MM_dd")

выход: "2018_08_24"