gpt4 book ai didi

c# - 如何正确执行 DateTime.Parse

转载 作者:太空宇宙 更新时间:2023-11-03 20:50:37 25 4
gpt4 key购买 nike

我有以下方法:

    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 时它失败了。错误是:

Exception while parsing 21/4/2019 11:6:56: String was not recognized as a valid DateTime.

我将 21/4/2019 11:6:56 粘贴到调试器中,它有效。胡说八道。有人可以帮忙吗?

请注意,无论有无 CultureInfo,它在 Azure(作为 Web 应用程序)上都会失败。

同样在 Azure 上,我的 web.config 设置为:

<globalization culture="" uiCulture="" />

最佳答案

你可以尝试使用DateTime.TryParseExact并设置解析格式。

DateTime dt;

DateTime.TryParseExact("21/4/2019 11:6:56",
"dd/M/yyyy hh:m:ss",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None,
out dt);

有两个原因我会使用 DateTime.TryParseExact 而不是 DateTime.Parse

  1. DateTime.TryParseExact 返回bool,你可以处理它而不是处理Exception。如果输入字符串与格式和区域性不匹配。它将返回 false
  2. 确定参数的Culture 和日期时间格式。

像这样。

DateTime dt;

if(!DateTime.TryParseExact(dateTimeStr,
"dd/M/yyyy hh:m:ss",
System.Globalization.CultureInfo.InvariantCulture,
System.Globalization.DateTimeStyles.None,
out dt))
{
_logger.Log($"Exception while parsing {dateTimeStr}");
dt = DateTime.Now;
}

return dt;

c# online

关于c# - 如何正确执行 DateTime.Parse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55779093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com