字符串未被识别为来自 Azure DevOps 的有效 DateTime 错误

String was not recognized as a valid DateTime error from Azure DevOps

当我们从 Azure DevOps 构建管道构建 Xamarin 应用程序时,我遇到了上述错误。

我们的 Xamarin 应用程序使用 ASP.NET Web API 服务,该服务接收日期作为参数。日期作为序列化字符串传递。该服务使用 DateTime.Parse() 函数将字符串转换回 DateTime,如下所示。

CultureInfo cultureinfo = new CultureInfo("en-GB");
DateTime startdate = DateTime.Parse(strstartdate, cultureinfo);

我希望我们所有的日期都采用 GB 格式,因为这是处理和存储它们的方式。

单元测试在从我们的开发机器本地调用服务时全部通过。但是当从 Azure DevOps 执行时它们会失败。我怀疑 Azure DevOps 将日期作为美国格式发送,然后在 DateTime.Parse() 函数尝试转换它们时中断。

如何解决这个问题?我希望 Azure DevOps 以 GB 格式发送日期。

将单元测试项目的 CultureInfo.CurrentCulture Property 设置为 en-GB

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");