значение 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 ответов:
Я бы использовал ISO 8601 формат без разделителей:
DateTime.Now.ToString("yyyyMMddTHHmmss")
У меня похожая ситуация, но я хочу, чтобы последовательный способ мог использовать DateTime.Разбор от имени файла, так что я пошел с
DateTime.Now.ToString("s").Replace(":", ".") // <-- 2016-10-25T16.50.35
когда я хочу разобрать, я могу просто отменить вызов Replace. Таким образом, мне не нужно вводить какие-либо материалы yymmdd или угадывать, какие форматы DateTime.Разбор позволяет.
лично мне это нравится так:
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 и более поздних версиях языка.