2012-04-26 2 views
7

DateTime.Parse는DateTime.Parse DD는/MM/YYYY 24 시간 시계

15/08/2000 16:58 

어떤 생각이 실패?

나는 날짜를 분석하고 국제적인 것을 얻을 필요가있다.

15/08/2000 4:58 오후에서

을 구문 분석

DD/MM/YYYY 24 시간 시계를 받아 24 시간 시계에

MM/DD/YYYY 플롭하지 않습니다 내가 다른 문화를 사용하여 보았던 Kibbee 대답. Regex를 사용하여 dd/MM인지 확인하고 culture FR-FR을 사용합니다.

+0

는 올바른 문화를 지정하고 있습니까? –

+0

나의 현재 문화는 en-US입니다. 내가 말했듯이 일부는 국제적입니다. – Paparazzi

답변

26

DateTime.ParseExact()보십시오 : 구문 분석을 호출 할 때

var result = DateTime.ParseExact(dateString, 
           "dd/MM/yyyy HH:mm", 
           new CultureInfo("en-US")); 
11

정확한 날짜를 예상하는 형식을 알고있는 경우 DateTime.ParseExact을 사용해야합니다. 사용자의 목적에 따라 다음이 작동 할 수 있습니다.

string dateString, format; 
DateTime result; 
CultureInfo provider = CultureInfo.InvariantCulture; 

dateString = "15/08/2000 16:58" 
format = "dd/MM/yyyy HH:mm" 
result = DateTime.ParseExact(dateString, format, provider); 

변경하십시오. HH가 24 시간을 나타 내기 때문에 hh가 HH로 변경되었습니다. 선행 0을 사용하지 않으면 간단히 H를 사용하십시오. 형식 문자열 작성에 대한 자세한 정보는 see this article을 참조하십시오.

또한 연결된 MSDN 기사에서 "g"형식이 작동해야하는 것처럼 보입니다.

dateString = "15/06/2008 08:30"; 
format = "g"; 
CultureInfo provider = new CultureInfo("fr-FR"); 
DateTime result = DateTime.ParseExact(dateString, format, provider); 
+0

문제는 형식을 모르는 것입니다. 저는 문자 그대로 이메일에서 수백만 개의 날짜를 파싱합니다. 당신의 대답을 시험해 봅시다. – Paparazzi

+1

형식을 모르는 경우 10/11/2008이 2008 년 10 월 11 일 또는 2008 년 11 월 10 일 중 하나 일 수 있으므로 정확한 형식으로 문제가 발생할 것입니다. 두 가지 형식 모두 매우 유명합니다. – Kibbee

+0

그러나 나는 부정확하지만 일관성있게 살 수 있습니다. 이메일 스레딩 용입니다. 정확한 것을 선호 할 것입니다. – Paparazzi