![](/img/trans.png)
[英]String was not recognized as a valid DateTime. using ParseExact on Windows Server 2012
[英]string was not recognized as a valid Datetime on Windows Server 2016
我創建了一個使用DateTime.ParseExact的應用程序,方法如下:
DateTime.ParseExact(extractedFileDate, "ddd MMM dd HH:mm:ss yyyy", CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None);
extractedFileDate存儲帶有日期的字符串,例如:“Tue Oct 08 12:07:13 2013”
當我在Windows 10上從我的計算機上運行我的應用程序時,一切運行順利,但是當我嘗試在Windows Server 2016上運行相同的應用程序時,我得到“字符串未被識別為有效的日期時間”錯誤按摩。
日期字符串的內容顯示的是相同的值。
它能是什么?
大衛。
文化具有DateTimeInfo
,其中包含有關如何解析字符串的特定信息。 例如,一年中幾個星期的星期幾的名稱。
您的格式字符串包含ddd MMM
和用於解析Tue Oct
字符串,因此當服務器配置了另一種文化時,這可能是問題。
您正在使用CultureInfo.CurrentCulture
。 在解析字符串時嘗試使用您的桌面文化。
更新:在您的評論中,您會問如何支持多種文化。 在數據傳輸或存儲的情況下,最好的方法是在(de)序列化DateTime
時使用CultureInfo.InvariantCulture
。 這種文化獨立於當地環境。 向用戶呈現(在GUI中)時,請使用默認(用戶配置的)文化。
解:
DateTime.ParseExact(extractedFileDate, "ddd MMM dd HH:mm:ss yyyy", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.