C#에서 날짜 형식의 유효성을 검사할 때는 DateTime.TryParseExact 메서드를 사용하는 것이 가장 간편하고 안정적인 방법입니다. 정규식(Regex)으로 패턴을 일일이 작성하는 대신, 이 메서드 하나만으로 날짜 형식이 올바른지 손쉽게 확인할 수 있습니다.
DateTime.TryParseExact는 지정된 날짜 및 시간 문자열을 미리 정의한 형식과 비교하여 그에 해당하는 DateTime 값으로 변환해 줍니다. 변환에 성공하면 true를 반환하고, 입력된 날짜 형식이 올바르지 않으면 false를 반환하므로 형식 검증에 매우 유용합니다.
주요 매개변수
- 첫 번째 인자: 유효성을 검사할 날짜 문자열
- 두 번째 인자: 기대하는 날짜 형식 (예: MM/dd/yyyy)
- 세 번째 인자: 문화권 정보 (CultureInfo.InvariantCulture 등)
- 네 번째 인자: DateTimeStyles 옵션
- out 매개변수: 변환 결과가 담길 DateTime 변수
예제
아래 예제에서는 "08/14/2018"이라는 문자열이 "MM/dd/yyyy" 형식에 맞는지 검사합니다.
using System;
using System.Globalization;
namespace Demo {
class Program {
static void Main(string[] args) {
DateTime d;
bool chValidity = DateTime.TryParseExact(
"08/14/2018",
"MM/dd/yyyy",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out d);
Console.WriteLine(chValidity);
}
}
}실행 결과
입력된 문자열이 지정한 형식과 일치하므로 아래와 같이 true가 출력됩니다.
True
만약 날짜 문자열이 "MM/dd/yyyy" 형식과 다르게 입력되었다면 false가 반환되므로, 이 값을 조건문에 활용해 잘못된 날짜 입력을 사전에 걸러낼 수 있습니다.