IT정보공유/C#

C# yyyymmddhhmmss 문자열을 날짜포맷(DateTime)으로 변환하는 함수

알지오™ 2019. 11. 18.

일반적으로 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);

 

댓글

💲 추천 글