簡體   English   中英

在Windows Server 2016上,字符串未被識別為有效的日期時間

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM