2014-11-15 3 views
0

주어진 문자열 날짜에서 하루를 공제하려고합니다. 내가 아래의 형식을 시도 할 때 오류를 보여줍니다.문자열 날짜 함수에서 "문자열이 유효한 날짜/시간 형식으로 인식되지 않았습니다"?

string fdate="12/11/2014"//(dd/MM/yyyy) format 
string date2 = (DateTime.Parse(fdate).AddDays(-1)).ToString("dd/MM/yyyy"); 

내가했던 실수를 지적 해주십시오 ...

+2

귀하의 예 [나를 위해 잘 작동] (https://dotnetfiddle.net/CukXja). 컴퓨터에 'dd/MM/yyyy'형식으로 날짜가 표시되지 않는 국가 별 설정이 있습니까? –

+0

@ Scott Chamberlain, 내 시스템 형식은 "MM/dd/yyyy"입니다. 하지만 "dd/MM/yyyy"형식의 날짜가 필요합니다. 그게 왜 문자열로 사용하고 있는지. –

+0

그런데'CurrentCulture' 란 무엇입니까? –

답변

1

코드는 시스템 날짜의 형식에 따라 작동 할 수 있습니다. 형식을 사용하여 문자열을 구문 분석하려면 ParseExact 메서드를 사용해보십시오.

string fdate = "12/11/2014"; 
string date2 = (DateTime.ParseExact(fdate, "dd/MM/yyyy", CultureInfo.InvariantCulture).AddDays(-1)).ToString("dd/MM/yyyy"); 

More information

+0

예, 작동합니다. Parse와 ParseExact의 차이점을 알고 싶습니까 ?? –

+0

'Parse'는 시스템 포맷을 고려하고 주어진 문자열을 분석하고'ParseExact'는 커스텀 날짜 포맷을 두번째 인자로 받아 들여 당신이 통과 한 포맷을 정확하게 분석합니다. –

+0

데이터베이스에 문자열 날짜가 있습니다. ** "todate = dr [1] .ToString();"**과 같이 **이 문자열 날짜를 ** "Int todate1 = Convert.ToInt32 (todate); "** 그러나 ** 오류를 보여줍니다 **"입력 문자열이 올바른 형식이 아닙니다 "** 그 이유를 알려주시겠습니까 ?? –

관련 문제