DateTime.Format ToString (), który może być użyty w nazwie pliku lub rozszerzeniu?

Chcę dodać znacznik czasu do nazw plików podczas tworzenia plików, ale większość metod DateTime próbowałem wypisać coś ze spacjami i ukośnikami. Na przykład:

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() działa, ale nie jest dokładnie czytelny dla człowieka. Jak sformatować wyjście na czytelny dla człowieka znacznik czasu z datą i czasem, który może być użyty w nazwie pliku lub rozszerzeniu? Lepiej coś w stylu 2011-19-9--13-45-30?

Author: pdizz, 2012-09-19

9 answers

Możesz użyć tego:

DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss");
 131
Author: Kristof Claes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-19 17:44:17

Użyłbym formatu ISO 8601 , bez separatorów:

DateTime.Now.ToString("yyyyMMddTHHmmss")
 68
Author: Christoffer Lette,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-19 17:48:43

Mam podobną sytuację, ale chcę spójnego sposobu, aby móc korzystać z DateTime.Parse from the filename as well, so I goed with

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

Kiedy chcę parsować, mogę po prostu odwrócić wywołanie Replace. W ten sposób nie muszę wpisywać żadnych rzeczy yymmdd ani zgadywać jakie formaty DateTime.Parse allows.

 8
Author: Gabe Haack,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-25 23:59:16

Możesz spróbować z

var result = DateTime.Now.ToString("yyyy-MM-d--HH-mm-ss");
 3
Author: Aghilas Yakoub,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-04 08:42:36

Osobiście lubię to w ten sposób:

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

Ponieważ rozróżnia datę i czas.

 3
Author: Charles Clayton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-01 10:34:06

Możesz utworzyć ścieżkę do pliku w następujący sposób:

string path = "fileName-"+DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss") + ".txt";
 2
Author: rouhollah ghasempour,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-23 08:01:07

Poniżej lista najczęściej używanych formatów czasu.,

dd -- dzień miesiąca, od 01 do 31.

MM -- miesiąc, OD 01 do 12.

yyyy -- rok jako czterocyfrowy numer.

hh -- godzina, używając 12-godzinnego zegara od 01 do 12.

mm -- Minuta, od 00 do 59.

ss -- drugi, od 00 do 59.

HH -- godzina, używając 24-godzinnego zegara od 00 do 23.

tt -- AM / PM wyznacznik.

Korzystając z powyższego, będziesz mógł utworzyć unikalną nazwę do nazwy pliku.

tutaj podałem przykład

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

lub

Jeśli nie wolisz używać symboli, możesz spróbować również tego.,

string fileName = "fileName_" + DateTime.Now.ToString("MMddyyyyhhmmsstt") + ".pdf";
Mam nadzieję, że to pomoże komuś teraz lub w przyszłości. :)
 2
Author: RajeshKdev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-31 10:29:10

Using interpolation string & format specifier :

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

Lub jeśli nie jesteś w Ameryce:

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

Ta funkcja jest dostępna w C # 6 i nowszych wersjach języka.

 1
Author: ChickenFeet,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-18 02:42:50

Spróbuj tego:

time.ToLongDateString()

Wyjście: "Piątek, 24 Sierpnia 2018"

Lub użyj formatowania:

time.ToString("yyyy_MM_dd")

Wyjście: "2018_08_24"

 0
Author: user4833581,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-08-24 09:59:56