2013-02-25 2 views
1

사용자가 dd/MM/yyyy 형식으로 날짜를 입력했는지 확인하는 코드가 작성되었습니다. 그러나 특정 컴퓨터에서 작동하지 않았으므로 예외가 발생합니다. 그러나 내 컴퓨터에서 실행되는 동안 제대로 작동했습니다. 왜 그런가요? 내가 잘못했거나 컴퓨터에서해야 할 일이 있습니다.특정 컴퓨터에서 예외 문자열이

Try 
    checkDate = "24/02/2013" 
    selectedDate = DateTime.ParseExact(checkDate, "dd/MM/yyyy", CultureInfo.InvariantCulture) 

    Catch ex As Exception 
    lblError.Text = "Invalid Date." 

    End Try 
+0

예외는 무엇입니까? –

+0

특정 컴퓨터에서만 발생하기 때문에이 문제는 아마도 다른 문화권에서 비롯된 것일 수 있습니다. MSDN 설명서를 보면 예제 코드에서 "d"를 형식으로 사용하여 날짜를 파싱하는 것을 볼 수 있습니다. – Hanno

+0

@ 한노 문화와 형식이 명시 적으로 지정 되었기 때문에 문화는 이론적으로 문제가되어서는 안됩니다. –

답변

0

귀하의 formatProvider (ParseExact의 3 ° 인수) 사용하는 형식과 일치해야하고, 이것은 귀하의 경우 거짓이 될 수 있습니다. InvariantCulture는 "모두 적합한"문화가 아닙니다. 그것은 변경되지 않는 문화이며, 사용자에게 보여주지 않고도 datetime을 persinting/retrieve 할 때 의존 할 수 있습니다. - 미국이 엉 따라 물론 변화의

Thread.CurrentThread.CurrentUICulture = New System.Globalization.CultureInfo("en-US") 
Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US") 

.. 작동 할 수 있습니다 귀하를 Page_Load에서 이것을 사용

checkDate = "24/02/2013" 
Dim dtfi As New DateTimeFormatInfo() 
dtfi.ShortDatePattern = "dd/MM/yyyy" 
selectedDate = DateTime.ParseExact(checkDate, "dd/MM/yyyy", dtfi) 
0

: 난 당신이 뭔가를해야한다고 (내가 지금 그것을 시도 할 수없는) 생각 귀하의 문화 환경 설정에

0

확실하지 않은 문제가 있으면 응용 프로그램을 다시 업로드하면 오류가 사라집니다. 이상한.

관련 문제