파일 이름 또는 확장명에 사용할 수있는 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
크리스토프 Claes가

1
내가 생각 추측 UTC 시간이 더 좋을 것이다
리얼 스틸

89
진심으로 1 년과 1 개월 사이의 하루를 제안하고 있습니까 ??
kjbartel 2017-06-20

10
파일 목록을 날짜 시간 순서로 가져 오기 위해 이름별로 정렬 할 수 없기 때문에 파일 이름에서 훨씬 더 변명 할 수 없습니다. 가장 중요한 것부터 가장 덜 중요한 것까지는 하루의 순서 여야합니다.
Bernhard Hofmann

4
@Matt-파일 이름이 항상 그렇지는 않은 생성 / 수정 / 액세스 날짜와 관련이 있다고 가정합니다.
Bernhard Hofmann

121

구분 기호없이 ISO 8601 형식을 사용합니다 .

DateTime.Now.ToString("yyyyMMddTHHmmss")

7
를 사용 DateTime.Now.ToString("o")하면 yyyy-MM-ddTHH:mm:ss.fffffff-HH:mm(마지막 시간 및 분 오프셋이 +/- GMT 인 경우) 제공됩니다. 물론 이것은 파일 이름 형식으로 작동하지 않지만 형식 "o"을 알아두면 좋습니다.
krillgar 2014 년

16

비슷한 상황이 있지만 파일 이름에서도 DateTime.Parse를 사용할 수있는 일관된 방법을 원하므로

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

구문 분석을 원할 때 간단히 Replace 호출을 되돌릴 수 있습니다. 이렇게하면 yymmdd 항목을 입력하거나 DateTime.Parse에서 허용하는 형식을 추측 할 필요가 없습니다.


8

가장 일반적으로 사용되는 시간 형식 지정자 목록은 다음과 같습니다.,

dd -01부터 31까지의 날짜 입니다.

MM - 01 ~ 12.

YYYY - 올해 네 자리 숫자로.

HH - 시간 하는 사용하여 12 시간 01 내지 12 시계.

mm - 00 59.

SS - 00 내지 59.

HH - 시간 하는 사용하여 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";

이것이 현재 또는 미래의 누군가에게 도움이되기를 바랍니다. :)


7

개인적으로 나는 이런 식으로 좋아합니다.

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

날짜와 시간을 구분하기 때문입니다.


1
난 당신이 "YYYY-MM-DD HH.MM.SS"을 의미하는 것 같아요
Filimindji


3

사용하여 보간 문자열 및 형식 지정자를 :

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

또는 미국에 있지 않은 경우 :

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

이 기능은 C # 6 이상의 언어 버전에서 사용할 수 있습니다.


2

다음과 같이 파일 경로를 만들 수 있습니다.

string path = "fileName-"+DateTime.Now.ToString("yyyy-dd-M--HH-mm-ss") + ".txt";
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.