블로그 이미지
프리랜서 Mir.J의 노하우와 강의가 모여있는 블로그! 앞으로 열심히 활동하겠습니다. 잘부탁드리겠습니다 (__)/ Webma_Mir
Statistics Graph

카테고리

Mir (121)
설치및설정 (22)
WPF (2)
C# (21)
Java (50)
Java Method (1)
JSP (5)
Essay (0)
note (2)
Disign (1)
Ubuntu (3)
DevExpress (0)
DBMS (12)
Android (1)
Excel (0)

현 블로그는 모바일 환경이 아닌 PC환경에 최적화 되어있습니다.

 Mir의 운영환경

 본체

 DeskTop

 O S

 Windows XP Professional Version 2002 Service Pack 2

 Application

 VisualStudio2010

 .Net

 Framework Ver 3.5

문자형을 DateTime형으로 변경하기


날짜와 시간의 형식에 맞춘 String을 DateTime으로 변경해보자.

 

String을 DateTime으로 변경하는 방법은 여러가지 있습니다. 보통 아래방법들이 많이 사용됩니다.

 

1. Convert.ToDateTime("날짜")  - 보통 Type을 변경할때 많이 쓰이는 Convert 함수입니다.

2. DateTime.Parse("날짜") - DateTime Class에서 제공하는 메소드로 Convert.ToDateTime과 별반 차이가 없습니다.

3. DateTime.TryParse("날짜",bool) - Parse()의 확장형으로 변경과 함께 정상적으로 변경이 되었는지 확인값도 리턴합니다.

4. DateTime.ParseExact("날짜","형식") - String에 들어가있는 날짜 형식을 사용자가 지정할수 있습니다.

 

4번의 ParseExact()메소드를 제외하고는(이건 형식을 지정할수 있으니...) 일정한 형식에 맞춰 넣어줘야지 DateTime형으로 정상적으로 변경됩니다. 아래 예제 소스로 하나하나 알아보도록 하겠습니다.

 

1. 날짜 입력시

 

1-1. 년,월,일 구분값은 [스페이스값],[/],[-] 으로만 구분가능하다. (섞여도 상관없습니다.)

            DateTime dti = Convert.ToDateTime("2015 11 13");      //변환 가능 (2015년 11월 13일 오후 12:00:00)
            DateTime dti = Convert.ToDateTime("2015-11-13");      //변환 가능 (2015년 11월 13일 오후 12:00:00)
            DateTime dti = Convert.ToDateTime("2015/11/13");      //변환 가능 (2015년 11월 13일 오후 12:00:00)
            DateTime dti = Convert.ToDateTime("2015-11/13");      //변환 가능 (2015년 11월 13일 오후 12:00:00)
            DateTime dti = Convert.ToDateTime("2015/11 13");      //변환 가능 (2015년 11월 13일 오후 12:00:00)            
            DateTime dti = Convert.ToDateTime("20151113");        //에러 (구분값 없음)
            DateTime dti = Convert.ToDateTime("2015_11_13");      //에러 (구분값 에러)
            DateTime dti = Convert.ToDateTime("2015:11:13");      //에러 (구분값 에러 :는 시간에서 사용가능)

1-2. 최소한 []과 []을 입력해주어야 한다. (년도는 미입력시 현재 년도로 자동입력됩니다.)

            DateTime dti = Convert.ToDateTime("11 13");       //변환 가능 (2015년 11월 13일 오후 12:00:00)
            DateTime dti = Convert.ToDateTime("15 11 13");    //변환 가능 (2015년 11월 13일 오후 12:00:00)
            DateTime dti = Convert.ToDateTime("30");          //에러 
            DateTime dti = Convert.ToDateTime("30 15");       //에러 (30월이 없으므로 에러)

1-3. 영어나 한글등 언어로 날짜를 입력시 해당 국가 표기방법으로만 입력해야한다. (섞이면 에러가 발생합니다.)

            DateTime dti = Convert.ToDateTime("2015년11월13일");         //변환 가능 (2015년 11월 13일 오후 12:00:00)  
            DateTime dti = Convert.ToDateTime("November 13, 2015");      //변환 가능 (2015년 11월 13일 오후 12:00:00) 
            DateTime dti = Convert.ToDateTime("Nov 13, 2015");           //변환 가능 (2015년 11월 13일 오후 12:00:00) 
            DateTime dti = Convert.ToDateTime("2015-11월13일");          //에러 (한글표기에 구분값이 들어가서 에러) 
            DateTime dti = Convert.ToDateTime("2015년11/13");            //에러 (한글표기에 구분값이 들어가서 에러) 
            DateTime dti = Convert.ToDateTime("11월 13, 2015");          //에러 (영문표기에 한글이 들어가서 에러) 
            DateTime dti = Convert.ToDateTime("2015Year 11Month 13Day"); //에러 (한국식 표기법을 영문으로 처리해서 에러)

 

2. 시간 입력시

 

2-1. 시간은 [:]으로만 구분가능하다. ('스페이스', '-' , '/' 를 넣으면 날짜로 인식합니다. 날짜는 미입력시 오늘날짜로 입력됩니다.)

            DateTime dti = Convert.ToDateTime("10:15:22");        //변환 가능 (2015년 11월 13일 오전 10:15:22) 
            DateTime dti = Convert.ToDateTime("101522");          //에러 (구분자 에러)
            DateTime dti = Convert.ToDateTime("10-15-22");        //에러 (2010년 15월 22일로 인식)
            DateTime dti = Convert.ToDateTime("10/15/22");        //에러 (2010년 15월 22일로 인식)
            DateTime dti = Convert.ToDateTime("10_15_22");        //에러 (구분자 에러)

2-2. 최소한 []와 []은 입력해주어야 한다. (초는 미입력시 00초로 자동입력됩니다.)

            DateTime dti = Convert.ToDateTime("10:15");       //변환 가능 (2015년 11월 13일 오전 10:15:00) 
            DateTime dti = Convert.ToDateTime("30");          //에러  
            DateTime dti = Convert.ToDateTime("30:15");       //에러 (30시가 없으므로 에러)

2-3. 영어나 한글등 언어로 날짜를 입력시 해당 국가 표기방법으로만 입력해야한다. (한국이외에는 xx : xx 표기법만 사용하는듯합니다.)

            DateTime dti = Convert.ToDateTime("10시 15분 22초");  //변환 가능 (2015년 11월 13일 오전 10:15:22)  
            DateTime dti = Convert.ToDateTime("10:15 22초");      //변환 가능 (?? 이해할수는 없지면 변환 된다..) 
            DateTime dti = Convert.ToDateTime("10시 15:22");      //에러 (표기방법 뒤섞임) 

4. 오전/오후(AM/PM) 구분이 없을경우 24시 기준으로 입력되며 오전/오후 구분이 있을경우 12시 기준으로 입력된다.

            DateTime dti = Convert.ToDateTime("PM 10시 15분 22초");   //변환 가능 (2015년 11월 13일 오후 10:15:22)  
            DateTime dti = Convert.ToDateTime("오후 10:15:22");       //변환 가능 (2015년 11월 13일 오후 10:15:22) 
            DateTime dti = Convert.ToDateTime("22:15:22");            //변환 가능 (2015년 11월 13일 오후 10:15:22) 
            DateTime dti = Convert.ToDateTime("10:15:22 AM");         //변환 가능 (2015년 11월 13일 오전 10:15:22) 
            DateTime dti = Convert.ToDateTime("22:15:22 AM");         //에러 (오전/오후 구분자가 있을경우 12시간 기준) 

 

1번과2번의 날짜/시간 입력방식만 지키면 날짜와 시간 모두 입력시 표기방법이 뒤섞여도 상관없습니다.

(날짜는 영문, 시간은 한글로 입력해도 상관없습니다.)


예제는 모두 Convert.ToDateTime() 메소드만 사용하였지만 DateTime.Parse()메소드도 모두 똑같이 적용됩니다.


나머지 3,4번 메소드는 후에 다시 블로깅하겠습니다.


 

※ 관련글

[String To DateTime] DateTime.TryParse() 사용하여 문자형을 DateTime형으로 변환 확인하기 (준비중)

[String To DateTime] DateTime Format (날짜형식)을 사용하여 문자형을 DateTime으로 변환하기 (준비중)

[DateTime To String] (준비중)


저작자 표시 비영리 변경 금지
신고
Posted by Mir.J Webma_Mir

최근에 달린 댓글

최근에 받은 트랙백

글 보관함