C# 如何将给定字符串转换为服务器的有效日期时间?

C# 如何将给定字符串转换为服务器的有效日期时间?,c#,datetime,tryparse,C#,Datetime,Tryparse,我正在尝试将来自Web服务的给定字符串转换为datetime。它在本地机器上工作,但当我从远程服务器上尝试它时,它会出现如下错误 “字符串未被识别为有效的日期时间。” 请参阅下面的代码,并推荐此问题的一般解决方案 DateTime test = DateTime.ParseExact(XmlStringHelper.GetTagValue(result, "date"), "ddMMM", System.Globalization.CultureInfo.InvariantCulture);

我正在尝试将来自Web服务的给定字符串转换为datetime。它在本地机器上工作,但当我从远程服务器上尝试它时,它会出现如下错误

“字符串未被识别为有效的日期时间。”

请参阅下面的代码,并推荐此问题的一般解决方案

DateTime test = DateTime.ParseExact(XmlStringHelper.GetTagValue(result, "date"), "ddMMM", System.Globalization.CultureInfo.InvariantCulture);
注意,date参数的值为“13FEB”


感谢您的帮助。

看起来服务器可能与您的本地计算机运行的文化不同。来自XmlStringHelper.GetTagValue(结果,“日期”)的结果可能采用其他格式。在这两台计算机上比较XmlStringHelper.GetTagValue(结果,“日期”)的区域性设置和结果。

您的问题是web服务中的日期字符串已本地化

因此,您必须适应web服务的文化,如:

DateTime test = DateTime.ParseExact(XmlStringHelper.GetTagValue(result, "date"), "ddMMM",System.Globalization.CultureInfo.*RemoteServerCulture*);

是否有可能使其与每种服务器文化兼容?在更改内容之前,必须首先确定问题的原因。您可以在web.config中设置区域性。如果
XmlStringHelper.GetTagValue(结果,“日期”)
确实返回
“13FEB”
,则代码按预期工作。