Ответ 1
Вы можете использовать это:
DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");
Я хочу добавить временную метку к именам файлов, поскольку файлы созданы, но большинство методов 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
?
Вы можете использовать это:
DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");
Я бы использовал формат ISO 8601 без разделителей:
DateTime.Now.ToString("yyyyMMddTHHmmss")
У меня подобная ситуация, но я хочу, чтобы последовательный способ иметь возможность использовать DateTime.Parse из имени файла, поэтому я пошел с
DateTime.Now.ToString("s").Replace(":", ".") // <-- 2016-10-25T16.50.35
Когда я хочу разобрать, я могу просто отменить вызов Replace. Таким образом, мне не нужно вводить какие-либо элементы yymmdd или угадывать, какие форматы допускает DateTime.Parse.
Вы можете попробовать с помощью
var result = DateTime.Now.ToString("yyyy-MM-d--HH-mm-ss");
Вы можете создать путь для своего файла ниже:
string path = "fileName-"+DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss") + ".txt";
Лично мне это нравится:
DateTime.Now.ToString("yyyy-mm-dd hh.mm.ss")
Потому что он отличает дату и время.