【发布时间】:2019-04-21 01:15:24
【问题描述】:
我有以下方法:
private DateTime GetDateTimeFromString(string dateTimeStr)
{
try
{
return DateTime.Parse(dateTimeStr, CultureInfo.InvariantCulture);
}
catch (Exception ex)
{
_logger.Log($"Exception while parsing {dateTimeStr}: {ex.Message}.");
return DateTime.Now;
}
}
当我在 Visual Studio 中运行它时,它工作正常。但是,当它部署到 Azure 时,它会失败。错误是:
解析 21/4/2019 11:6:56 时出现异常:字符串未被识别为有效的 DateTime。
我将 21/4/2019 11:6:56 粘贴在调试器中,它可以工作。糊涂了。有人可以帮忙吗?
请注意,无论有没有 CultureInfo,它在 Azure(作为 Web 应用程序)上都会失败。
同样在 Azure 上,我的 web.config 设置为:
<globalization culture="" uiCulture="" />
【问题讨论】:
-
检查主机上的文化设置。
-
@MarkBenningfield,感谢您的回复。它是一个网络应用程序。上面的代码不管有没有 cultuerinfo 参数都会失败。
-
我认为
DateTime.Parse("21/4/2019 11:6:56", CultureInfo.InvariantCulture)永远不会成功 - 你确定你展示的代码可以证明这个问题吗? -
@AlexeiLevenkov,是的。那是精确的复制和粘贴。