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
4

3 に答える 3

0

何が問題なのかわかりません。アプリケーションを再アップロードすると、エラーはなくなりました。変。

于 2013-02-28T01:35:05.633 に答える
0

formatProvider (ParseExact の 3° 引数) は、使用している形式と一致する必要があります。これは、場合によっては false になる可能性があります。InvariantCulture は「すべてに適合する」文化ではありません。それは変わらない文化であり、ユーザーに表示せずに日時を永続化/取得するときにそれに依存できます。私はあなたがこのようなことをすべきだと思います(私は今それを試すことができません):

 checkDate = "24/02/2013"
 Dim dtfi As New DateTimeFormatInfo()
 dtfi.ShortDatePattern = "dd/MM/yyyy"
 selectedDate = DateTime.ParseExact(checkDate, "dd/MM/yyyy", dtfi)
于 2013-02-25T14:40:37.720 に答える
0

これを page_load で使用するとうまくいくかもしれません..

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

もちろん、文化の好みに応じて en-US を変更します

于 2013-02-25T17:01:50.763 に答える