我编码检查以确保用户以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)
您的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)
不确定什么是错的,我重新上传应用程序并且错误消失了。奇怪。