C#에서 DateTime.ToString() 메서드는 현재 DateTime 개체가 담고 있는 날짜와 시간 값을 사람이 읽을 수 있는 문자열(string) 형태로 변환할 때 사용합니다. 날짜 데이터를 화면에 출력하거나 파일·데이터베이스에 저장하기 전에 문자열로 바꿔야 할 때 매우 유용하게 활용됩니다.
문법(Syntax)
DateTime.ToString() 메서드는 매개변수의 조합에 따라 네 가지 오버로드(overload) 형태로 제공됩니다.
ToString() ToString(IFormatProvider) ToString(String) ToString(String, IFormatProvider)
- ToString(): 시스템의 현재 문화권(culture) 설정에 따라 기본 형식으로 변환합니다.
- ToString(IFormatProvider): 지정한 문화권 정보에 맞춰 변환합니다.
- ToString(String): 표준 또는 사용자 지정 날짜/시간 형식 지정자를 이용해 변환합니다.
- ToString(String, IFormatProvider): 형식 지정자와 문화권 정보를 모두 지정하여 변환합니다.
예제 1 – 기본 사용법
먼저 ToString() 메서드를 아무 인자 없이 호출하는 가장 기본적인 예제입니다.
using System;
public class Demo {
public static void Main() {
DateTime d = new DateTime(2019, 11, 11, 7, 11, 25);
Console.WriteLine("Date = {0}", d);
string str = d.ToString();
Console.WriteLine("String representation = {0}", str);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Date = 11/11/2019 7:11:25 AM String representation = 11/11/2019 7:11:25 AM
예제 2 – 형식 지정자 "f" 활용
이번에는 ToString(String) 오버로드에 표준 형식 지정자인 "f"(전체 날짜 + 짧은 시간 패턴)를 전달하는 예제입니다.
using System;
public class Demo {
public static void Main() {
DateTime d = new DateTime(2019, 11, 11, 7, 11, 25);
Console.WriteLine("Date = {0}", d);
string str = d.ToString("f");
Console.WriteLine("String representation = {0}", str);
}
}출력 결과
형식 지정자 "f"를 적용하면 요일과 월 이름까지 포함된 좀 더 자세한 문자열이 생성됩니다.
Date = 11/11/2019 7:11:25 AM String representation = Monday, November 11, 2019 7:11 AM
마무리
DateTime.ToString() 메서드는 단순히 객체를 문자열로 바꾸는 것을 넘어, 형식 지정자와 문화권 정보를 조합함으로써 다양한 상황에 맞는 날짜/시간 표현을 손쉽게 만들 수 있다는 점이 큰 장점입니다. 실무에서는 국제화(i18n)를 고려해 IFormatProvider를 함께 지정해 주는 것이 권장됩니다.