C#:
날짜를 문자열로 변환하기
How to: (방법)
using System;
using System.Globalization;
class DateToStringExample
{
static void Main()
{
DateTime now = DateTime.Now;
// 기본 ToString() 사용
string defaultString = now.ToString();
Console.WriteLine(defaultString); // ex: "2023-04-01 10:15:30"
// 사용자 정의 포맷 지정
string customFormat = now.ToString("yyyy년 MM월 dd일 HH시 mm분 ss초");
Console.WriteLine(customFormat); // ex: "2023년 04월 01일 10시 15분 30초"
// CultureInfo 사용
string koreanFormat = now.ToString("f", new CultureInfo("ko-KR"));
Console.WriteLine(koreanFormat); // ex: "2023년 4월 1일 토요일 오전 10:15"
}
}
출력:
2023-04-01 10:15:30
2023년 04월 01일 10시 15분 30초
2023년 4월 1일 토요일 오전 10:15
Deep Dive (심화 학습)
날짜를 문자열로 변환하는 것은 .NET Framework 초기 버전부터 지원되었습니다. ToString 메소드는 다양한 오버로드를 가지고 있어, DateTime 객체를 다양한 컬처와 포맷에 적합한 문자열로 만들 수 있도록 합니다. ToString 메소드 외에도, String.Format()
또는 문자열 보간(string interpolation)과 같은 방법으로도 날짜를 문자열로 포매팅할 수 있습니다. 예를 들어, String.Format("오늘은 {0:yyyy년 MM월 dd일}입니다.", DateTime.Now);
나 $"오늘은 {DateTime.Now:yyyy년 MM월 dd일}입니다.";
같은 표현이 가능합니다.
날짜 포매팅은 프로그램의 로케일 설정에 크게 의존하므로, 다국어 지원이 필요한 애플리케이션에서는 CultureInfo
객체를 사용하여 명시적으로 문화권을 설정하는 것이 중요합니다. InvariantCulture
를 사용하면 문화권에 독립적인 포맷을 보장할 수 있습니다.