我创建了一个按以下方式使用 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 关注
- 92 浏览
添加回答
举报
0/150
提交
取消