2017-08-04 39 views
-1

我寫了這個錯誤:獲取有關解析聽起來有效日期時間

Dim dtttm As DateTime = DateTime.Parse(value, 
    System.Globalization.CultureInfo.InvariantCulture) 

和得到傳入的值是

17/07/30 12:00:00 AM 

但我得到的錯誤:

System.FormatException: 'String was not recognized as a valid DateTime.'

+0

您需要使用'ParseExact'並傳遞正確的格式,如果你要處理不尋常的格式,像當年來到這裏第一::'DateTime.ParseExact(輸入,「YY/MM/dd h:mm:ss tt「,CultureInfo.InvariantCulture)' –

+0

如果你的文化是美國的,它期望的是第一個月,所以它不會像17 – zzxyz

回答

6

InvariantCulture使用MM/dd/yy日期格式。您的輸入格式爲dd/MM/yy格式(1930年7月17日),或格式爲yy/MM/dd格式(2017年7月30日)。我不知道。

您應該使用ParseExact相反,使用您的輸入匹配的格式:

Dim dtttm As DateTime = DateTime.ParseExact(value, "dd/MM/yy h:mm:ss tt" 
    System.Globalization.CultureInfo.InvariantCulture) 

理想的情況下,避免模棱兩可的數據。儘可能使用yyyy-MM-dd格式。
https://xkcd.com/1179/

+0

...爲什麼」不變「是美國的格式是我的東西我從來沒有想過... –

+0

也許是因爲微軟是一家美國公司? – NetMage

+1

是的,除了我相信他的格式是yy/MM/dd ... –