일반적으로 C#에서 문자열을 DateTime 형식으로 변환할때 많이 쓰는 함수는
DateTime.Parse 함수입니다.
하지만 yyyymmddhhmmss 형태로 저장된 문자열을 DateTime.Parse() 함수를 이용해서
DateTime 으로 변환하려고 하면 오류가 발생합니다.
그럴때는 DateTime.ParseExact 함수를 이용해서 변환할 수 있습니다.
총 3개의 오버라이드 함수 원형이 있습니다.
public static DateTime ParseExact(string s, string format, IFormatProvider provider);
public static DateTime ParseExact(string s, string format, IFormatProvider provider, DateTimeStyles style);
public static DateTime ParseExact(string s, string[] formats, IFormatProvider provider, DateTimeStyles style);
그리고 다음과 같이 별로의 포맷프로바이더는 지정하지 않고 사용합니다.
string tmp_datestring = "20191118223344";
DateTime tmpDate = DateTime.ParseExact(tmp_datestring, "yyyyMMddHHmmss", null);
꼭 날짜형식의 완전한 포맷을 가진 문자열만 되는 것이 아니라 변환하려는 날짜유형에 맞게 변환이 가능합니다.
string tmp_datestring = "20191118";
DateTime tmpDate = DateTime.ParseExact(tmp_datestring, "yyyyMMdd", null);
tmp_datestring = "191118";
DateTime tmpDate = DateTime.ParseExact(tmp_datestring, "yyMMdd", null);
tmp_datestring = "1118";
DateTime tmpDate = DateTime.ParseExact(tmp_datestring, "MMdd", null);
댓글