2013-05-10 4 views
0
string temp = dataGridView1.Rows[x].Cells[y].ToolTipText;//stored in dd-MM-yy hh:mm:ss 
      //MessageBox.Show(temp); 
temp = temp[0].ToString() + temp[1].ToString() + temp[2].ToString() + temp[3].ToString() + 
temp[4].ToString() + temp[5].ToString() + temp[6].ToString() + temp[7].ToString() + 
temp[8].ToString() + temp[9].ToString();//converting to dd-MM-yyyy 
labeldate = DateTime.ParseExact(temp,"dd-MM-yyyy", 
            CultureInfo.InvariantCulture); 

위의 코드를 사용하여 문자열 (dd/mm/yyyy 형식)을 datetime 형식으로 변환합니다. 그것은 내 컴퓨터에서 잘 작동합니다. 그러나 문자열이 datetime으로 인식되지 않는다고 말하는 다른 컴퓨터에서도 오류가 발생합니다. 추가 조사에. 나는 다른 컴퓨터에서 temp가 1/1/2013 또는 11/3/2013을 보인 반면에 광산에서는 01-01-2013 또는 11-03-2013을 표시한다는 것을 알았습니다. 이 문제를 해결할 수없는 것 같습니다. 어떤 도움이 필요합니까?구문 분석 날짜 오류

+0

무엇이 ?? 모든 문자열 문자 조작은'string.Remove (9)'로 수행되어야합니다. 캐릭터 조작 후 '임시'형식을 보여 주면 도움이 될 것입니다. –

+3

코드가 완전히 무의미합니다. 그 두 번째 성명서는 무엇을하고 있습니까? – leppie

+0

예, 중요한 정보는 임시 직원이 형성되는 방식입니다. 이것이 없으면 조언을하기가 어렵지만 항상 같은 형식으로되어 있는지 확인해야합니다. –

답변

3

이것은 문화권의 문제 일 수 있습니다. .ToString(CultureInfo.InvarientCulture)을 사용하면 컴퓨터에 설정된 문화권에 관계없이 동일한 결과를 얻게됩니다.

+0

그는 이미 이것을 사용하고 있으며 그는 또한 그의 * source * (temp)가 다른 것을 지정했습니다. 이 경우 InvariantCulture는 도움이되지 않습니다. –

+0

아래쪽으로 계산되었습니다. 내 직감 일까? – leppie

+0

임시 직원과 다르지만 문화권에 따라 변경 될 수있는 많은 .ToString() 호출로 임시 직원이 채워집니다. – wilsjd

3

당신이하고있는 모든 문화의 문제가 언급 한 wilsjd에 관해서는 당신이

string temp = dataGridView1.Rows[x].Cells[y].ToolTipText;//stored in dd-MM-yy hh:mm:ss 
labeldate = DateTime.Parse(temp).Date; 

에 코드를 단순화 할 수있는 날짜 시간의 날짜 부분을 얻기 위해 노력합니다. ToolTipText이 텍스트가 입력되는 동안 기본 문화권 규칙을 사용하는 경우 파서는 구문 분석을 다시 시도 할 때 동일한 규칙을 사용해야합니다.

+0

예, 그렇습니다. 그것은 잘 작동합니다. 감사합니다 –

+0

이것은 이것이 완료되어야하는 방법입니다. – wilsjd