2009-11-16 10 views
0

다음 코드는 오류가 발생합니다. 그 이유는 무엇입니까?C# 날짜 정확한 문제 분석

string dateFormatString = "dd.MM.yyyy HH:mm:ss"; 
string properDate = DateTime.ParseExact(DateTime.Now.ToString() , dateFormatString , null).ToString() 

오류 : 문자열이 유효한 날짜와 시간으로 인식되지 않습니다.

+0

, 그것이 될 수 있습니다 ... –

+1

당신이 날짜의 있으며, toString() 확신은 형식 마스크에 표시된대로 정확히처럼 온다? – flq

+1

알다시피 ... 제대로 작동하면 DateTime.Now.ToString() –

답변

3

DateTime.Now.ToString()는 현재 문화권을 사용하여 날짜 형식을 지정합니다. ParseExact 함수에서 예상하는 형식 인 DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss")을 지정해야합니다.

1

당신은 이것을 필요로합니다. 휴식은 케이크 조각입니다. http://john-sheehan.com/blog/wp-content/uploads/msnet-formatting-strings.pdf

와 당신은 간단하게 할 수있는이 http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx

+0

정말 참으로 유용한 게시 자료, 좋은 참고 자료에 대한 감사하지만 내 문제를 해결하지는 못합니다. –

+0

안녕하세요 JL - 여기서 주목해야 할 점은 전달하는 내용이 구문 분석하려는 형식이어야한다는 것입니다. "dd.MM.yyyy HH : mm과 같은 날짜 시간의 기본 문자열 표현을 보냅니다. : ss "대신에"dd/MM/yyyy HH : mm : ss "슬래시와 점 차이가 있습니다. – MSIL

0

:

string dateFormatString = "dd/MM/yyyy HH:mm:ss"; 
string properDate = DateTime.Now.ToString(dateFormatString); 

편집 : 귀하의 의견에 따르면, 당신은 체코에서 그 공통의 형식과 일치하기 위해 노력하고 있습니다. 당신은 그렇게 할 CultureInfo을 사용해야합니다

string properDate = DateTime.Now.ToString(new CultureInfo("cs-CZ")); 
0

귀하의 지역 문화는 "dd.MM.yyyy HH : mm : ss"로 작성합니까? 간단히 말하자면, 날짜의 ToString()이이 레이아웃을 생성하지 않으면 깨끗하게 구문 분석하지 못합니다. ParseExact이 아니며은 매우 용인합니다.

나는 당신이 실제로 호출 할 경우 궁금하네요 : ApoY2k @

string s = DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss");