C#에서 DateTime 객체를 문자열로 변환할 때 "YYYYMMDDHHMMSS"와 같은 특정 형식이 필요한 경우가 자주 있습니다. 예를 들어 파일명 생성, 로그 기록, 데이터베이스 저장 등에서 날짜와 시간을 구분자 없이 하나의 문자열로 표현해야 할 때 유용합니다.
이러한 변환은 ToString() 메서드에 사용자 지정 날짜 및 시간 서식 지정자를 전달하는 것만으로 간단히 처리할 수 있습니다.
기본 변환 방법
DateTime 값을 "YYYYMMDDHHMMSS" 형식으로 변환하려면 아래와 같이 서식 문자열 "yyyyMMddHHmmss"를 사용합니다.
class Program {
static void Main() {
DateTime d = DateTime.Now;
string dateString = d.ToString("yyyyMMddHHmmss");
System.Console.WriteLine(dateString);
Console.ReadLine();
}
}실행 결과
20200727080325
위 코드에서 각 서식 지정자의 의미는 다음과 같습니다.
- yyyy — 4자리 연도 (예: 2020)
- MM — 2자리 월 (예: 07)
- dd — 2자리 일 (예: 27)
- HH — 24시간제 기준 2자리 시간 (예: 08)
- mm — 2자리 분 (예: 03)
- ss — 2자리 초 (예: 25)
다양한 DateTime 서식 예시
DateTime은 목적에 따라 다양한 형식으로 변환할 수 있습니다. 대표적인 서식 지정자와 그 결과는 다음과 같습니다.
| 서식 문자열 | 출력 결과 |
|---|---|
| MM/dd/yyyy | 08/22/2020 |
| dddd, dd MMMM yyyy | Tuesday, 22 August 2020 |
| dddd, dd MMMM yyyy HH:mm | Tuesday, 22 August 2020 06:30 |
| dddd, dd MMMM yyyy hh:mm tt | Tuesday, 22 August 2020 06:30 AM |
| dddd, dd MMMM yyyy H:mm | Tuesday, 22 August 2020 6:30 |
| dddd, dd MMMM yyyy h:mm tt | Tuesday, 22 August 2020 6:30 AM |
| dddd, dd MMMM yyyy HH:mm:ss | Tuesday, 22 August 2020 06:30:07 |
| MM/dd/yyyy HH:mm | 08/22/2020 06:30 |
| MM/dd/yyyy hh:mm tt | 08/22/2020 06:30 AM |
| MM/dd/yyyy H:mm | 08/22/2020 6:30 |
| MM/dd/yyyy h:mm tt | 08/22/2020 6:30 AM |
| MM/dd/yyyy HH:mm:ss | 08/22/2020 06:30:07 |
참고 사항
서식 지정자에서 대소문자를 주의해야 합니다. mm은 분을 의미하고 MM은 월을 의미하며, hh는 12시간제, HH는 24시간제 시간을 나타냅니다. 또한 문화권(Culture) 설정에 따라 요일 이름이나 AM/PM 표시가 달라질 수 있으므로, 고정된 출력이 필요하다면 CultureInfo.InvariantCulture를 함께 사용하는 것이 좋습니다.