2013-02-25 61 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

什麼是例外? – 2013-02-25 13:51:26

+0

由於它只發生在某些計算機上,所以問題可能是由不同的文化造成的。如果您查看MSDN文檔,您會發現它們在示例代碼中使用「d」作爲格式來解析日期。 – Hanno 2013-02-25 13:57:34

+0

@Hanno從理論上講,文化不應該成爲一個問題,因爲文化和格式正在被明確規定。 – 2013-02-25 14:08:23

回答

0

你formatProvider(3°說法ParseExact的)應與您正在使用的格式,這可能是你的情況虛假。不變的文化不是一個「適合所有」的文化;這是一種不會改變的文化,當您持續/檢索日期時間而不向用戶顯示時,您可以依賴它。 我認爲(我現在不能嘗試),你應該做這樣的事情:

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

在你的Page_Load可能工作中使用此..

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

的en-US根據對你的文化偏好

0

不知道最新錯誤,我重新上傳應用程序,錯誤消失了。奇怪。