2008-10-24 2 views

답변

12

사용 DateTime.ParseExact :

string str = "24/10/2008"; 
DateTime dt = DateTime.ParseExact(str, "dd/MM/yyyy", 
            Thread.CurrentThread.CurrentCulture); 

이 (당신은 당신이 실제로 인정 하듯이, 그것을 분석하고 싶은 문화 고려해야한다.)

편집 : 다른 답변이 세 번째 매개 변수로 "널 (null)"지정한 -이 Thread.CurrentThread.CurrentCulture을 사용하는 것과 같습니다.

다른 형식의 경우 MSDN의 "Custom Date and Time Format Strings"을 참조하십시오. 당신은 형식, 사용을 모르는 경우이

DateTime date = System.DateTime.ParseExact(str, "HH:mm:ss", null); 
0

시도 뭔가 :

DateTime d = DateTime.Parse(dateString); 

이에 시도 for를 사용하여 날짜 및 시간의 문자열 표현을 구문 분석합니다. 현재 문화의 돗자리 규칙 (예 : 영어 (미국) "en-US", 독일어 "de-DE"...). 인식 할 수없는 데이터를 무시하고 현재 날짜로 연도, 월 및 일의 누락 된 값을 채 웁니다 (예 : 시간이 포함 된 문자열 만 분석하는 경우).

당신은 문자열의 사용 문화가 현재와 다르다는 것을 알고 있다면, 당신이 사용하는 문화를 지정할 수 있습니다 : 당신은에 allways 이후 시도-catch 블록으로 변환을 suround한다

CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US"); 
DateTime d = DateTime.Parse(dateString, culture); 

문자열은 인식 된 패턴을 따라야합니다. 또는 성공한 경우 true를 반환하는 DateTime.TryParse(dateString, out dateTime) 메서드를 사용하여 문자열의 유효성을 테스트하고 결과를 dateTime; 그렇지 않은 경우는 false입니다. 당신이 정확한 형식을 알고있는 경우

, 당신은

DateTime d = DateTime.ParseExact(dateString, "dd/MM/yyyy", null); 

이 (다른 형식 문자열에 대한 MSDN 사이트에서 Custom Date and Time Format Strings 참조)를 사용할 수 있습니다.

0
string str = "24/10/2008"; 
DateTime dt = Convert.ToDateTime(str); 
4

를 작동 할 수 있습니다 시간에 대한

DateTime date = System.DateTime.ParseExact(str, "dd/MM/yyyy", null); 

같은

3

날짜 문자열이 어떤 형식인지 알 수없는 경우 DateTime.TryParse을 살펴 보시기 바랍니다. 이렇게하면 파싱 루틴에서 매우 비싼 예외를 피할 수 있습니다. 당신이이 알고 경우

나는 또한 두 번째 존 소총의 추천 DateTime.ParseExact을 사용하는 것 정확히 날짜에 일 무슨 형식마다.

+1

두 세계의 장점을 최대한 활용하려면 .TryParseExact()도 있습니다. –

관련 문제