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

您的 formatProvider(ParseExact 的 3° 参数)应与您使用的格式匹配,在您的情况下这可能是错误的。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 回答
0

不知道怎么回事,我重新上传应用程序,错误就消失了。奇怪的。

于 2013-02-28T01:35:05.633 回答