我創建了一個按以下方式使用 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 上運行相同的應用程序時,我收到“字符串未被識別為有效的日期時間”錯誤消息。日期字符串的內容顯示相同的值。它會是什么?
2 回答

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
區域性DateTimeInfo
包含有關如何解析字符串的特定信息。例如,一年中的星期幾、月份的名稱。
您的格式字符串包含ddd MMM
要解析的字符串Tue Oct
,因此當服務器配置了另一種區域性時,這可能會出現問題。
您正在使用CultureInfo.CurrentCulture
. 解析字符串時嘗試使用您的桌面區域性。
更新:在您的評論中,您詢問如何支持多種文化。在數據傳輸或存儲的情況下,最好的方法是CultureInfo.InvariantCulture
在(反)序列化時使用DateTime
。這種文化獨立于當地環境。當向用戶(在 GUI 中)呈現時,使用默認(用戶配置的)區域性。

慕田峪7331174
TA貢獻1828條經驗 獲得超13個贊
解決方案:
DateTime.ParseExact(extractedFileDate, "ddd MMM dd HH:mm:ss yyyy", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
- 2 回答
- 0 關注
- 131 瀏覽
添加回答
舉報
0/150
提交
取消