字符串在 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 上运行相同的应用程序时,我收到“字符串未被识别为有效的日期时间”错误消息。

日期字符串的内容显示相同的值。

它会是什么?


慕丝7291255
浏览 96回答 2
2回答

潇潇雨雨

区域性DateTimeInfo包含有关如何解析字符串的特定信息。例如,一年中的星期几、月份的名称。您的格式字符串包含ddd MMM要解析的字符串Tue Oct,因此当服务器配置了另一种区域性时,这可能会出现问题。您正在使用CultureInfo.CurrentCulture. 解析字符串时尝试使用您的桌面区域性。更新:在您的评论中,您询问如何支持多种文化。在数据传输或存储的情况下,最好的方法是CultureInfo.InvariantCulture在(反)序列化时使用DateTime。这种文化独立于当地环境。当向用户(在 GUI 中)呈现时,使用默认(用户配置的)区域性。

慕田峪7331174

解决方案:DateTime.ParseExact(extractedFileDate, "ddd MMM dd HH:mm:ss yyyy", CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None);
打开App,查看更多内容
随时随地看视频慕课网APP