特定计算机上的字符串到日期异常

时间:2013-02-25 13:47:23

标签: asp.net vb.net datetime

我编码检查以确保用户以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

3 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

在page_load中使用它可能有用..

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

当然根据您的文化偏好改变en-US

答案 2 :(得分:0)

不确定什么是错的,我重新上传应用程序并且错误消失了。奇怪。