如何正确执行 DateTime.Parse

我有以下方法:


    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 时出现异常:字符串未被识别为有效的日期时间。


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


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


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


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


收到一只叮咚
浏览 125回答 2
2回答

白猪掌柜的

您可以尝试使用DateTime.TryParseExact并设置解析格式。DateTime&nbsp;dt; DateTime.TryParseExact("21/4/2019&nbsp;11:6:56",&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"dd/M/yyyy&nbsp;hh:m:ss", &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Globalization.CultureInfo.InvariantCulture, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Globalization.DateTimeStyles.None,&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;out&nbsp;dt);有两个原因我会使用DateTime.TryParseExact而不是DateTime.ParseDateTime.TryParseExactreturn&nbsp;bool,你可以处理它而不是 handle&nbsp;Exception。如果输入字符串与格式和区域性不匹配。它会回来false的。确定Culture和日期时间格式是参数。像这样。DateTime dt;if(!DateTime.TryParseExact(dateTimeStr,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;"dd/M/yyyy hh:m:ss",&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.Globalization.CultureInfo.InvariantCulture,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.Globalization.DateTimeStyles.None,&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; out dt)){&nbsp; &nbsp; _logger.Log($"Exception while parsing {dateTimeStr}");&nbsp; &nbsp; dt = DateTime.Now;}return dt;c#在线

慕少森

&nbsp; &nbsp; string dateTimeStr = "2019-04-35";&nbsp; &nbsp; DateTime dateTime;&nbsp; &nbsp; if (DateTime.TryParse(dateTimeStr, out dateTime))&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine(dateTime);&nbsp; &nbsp; }&nbsp; &nbsp; else&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; Console.WriteLine("Invalid");&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP