Формат DateTime.ToString (), який можна використовувати у назві файлу чи розширенні?


100

Я хочу додати позначку часу до імен файлів, оскільки файли створюються, але більшість методів 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?


2
Як щодо цього ... DateTime.Now.ToString ("yyyy-MM-dd - hh-mm-ss")
Gene S

Відповіді:


177

Ви можете скористатися цим:

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

5
Ви можете подивитися більше прикладів / варіантів тут: geekzilla.co.uk/View00FF7904-B510-468C-A2C8-F859AA20581F.htm
Крістоф

1
Гадаю, зважаючи на кращий час буде краще
RealSteel

89
Ви серйозно пропонуєте провести день між роком і місяцем ??
kjbartel

10
Ще більш непростим є ім’я файлу, оскільки список файлів не може бути відсортований за назвою, щоб отримати їх у порядку часу. Найбільш важливим до найменш значущого має бути порядок дня.
Бернхард Хофманн

4
@Matt - ви припускаєте, що ім'я файлу пов'язане зі створеною / модифікованою / датою доступу, яка не завжди є.
Бернхард Хофманн

121

Я б використовував формат ISO 8601 , без роздільників:

DateTime.Now.ToString("yyyyMMddTHHmmss")

7
Якщо ви користуєтеся DateTime.Now.ToString("o"), він видасть вам yyyy-MM-ddTHH:mm:ss.fffffff-HH:mm(де кінцева година та хвилина зміщення - +/- GMT). Зрозуміло, це не працює як формат імені файлів, але "o"форматування добре знати.
krillgar

16

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

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

Коли я хочу розібратися, я можу просто змінити виклик Замінити. Таким чином, мені не потрібно вводити будь-які речі yymmdd або здогадуватися, які формати дозволяє DateTime.Parse.


8

Нижче наведено список специфікаторів формату часу, які найчастіше використовуються.,

дд - день місяця, з 01 по 31 рік.

ММ - місяць , з 01 по 12 рік.

yyyy - рік як чотиризначне число.

hh - година , використовуючи 12-годинний годинник від 01 до 12.

мм - хвилина , від 00 до 59.

ss - секунда , з 00 по 59.

HH - година , використовуючи цілодобовий годинник від 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";

Сподіваюся, це допоможе комусь зараз чи в майбутньому. :)


7

Особисто мені це подобається так:

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

Тому що він розрізняє дату і час.


1
Я думаю, ви маєте на увазі "yyyy-MM-dd HH.mm.ss"
Filimindji



Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.